c# – 如何以编程方式设置AppBar高度?

我正在App.xaml.cs中创建一个Global AppBar:

public static AppBar _globalAppBar = new AppBar();

public App()
{
    //Code

    SetUpBar();
}

public void SetUpBar()
{
    //SIZE
    _globalAppBar.Height = 250;

    //BACKGROUND
    ImageBrush bck = new ImageBrush();
    bck.ImageBrush = new BitmapImage(new Uri("Path"));
    _globalAppBar.Background = bck;
}

我正在实现这样的原因,因为我希望这个页面出现在应用程序的每个页面中,而Microsoft给出的代码对我来说不起作用,所以我决定这样做就像WP 8一样(实际上是一个改编,因为在我的情况下) ,我正在使用C#而不是XAML).

所以,我面临的问题是appbar占用了照片的大小,我没有找到任何属性来设置ImageBrush的高度.

我想设置appbar的布局并在项目的所有页面上共享它(避免在每个页面中复制和粘贴代码)所以任何示例或帮助都会非常感激:).
提前致谢!

最佳答案 正如你在评论中所说的那样:“……但我想要实现的第一个目标是使用imahe设置背景并调整其大小.”

所以,试试这段代码:这是示例代码:

XAML:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

        <Slider x:Name="slider"
                VerticalAlignment="Center"
                Maximum="250"
                Minimum="50"
                Value="100"
                ValueChanged="slider_ValueChanged"/>
</Grid>

C# :

 public static AppBar _globalAppBar = new AppBar();

    public MainPage()
    {
        this.InitializeComponent();
        SetUpBar();
    }

    public void SetUpBar()
    {
        _globalAppBar = new AppBar();
        //SIZE
        _globalAppBar.Height = 250;
        _globalAppBar.Name = "appBar";
        //BACKGROUND

        _globalAppBar.Background = new SolidColorBrush(Colors.PaleVioletRed);

        BitmapImage bmI = new BitmapImage();
        bmI= new BitmapImage(new Uri("ms-appx:///Assets/1.jpg", UriKind.RelativeOrAbsolute));

        var imageBrush = new ImageBrush();
        imageBrush.ImageSource = bmI;
        _globalAppBar.Background = imageBrush;

        AppBarButton abbtn = new AppBarButton();
        abbtn.Label = "Hello";

        _globalAppBar.Content = abbtn;
        this.TopAppBar = _globalAppBar;

    }

    private void slider_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
    {
        Slider sl = (Slider)sender;
        if (sl.Value!=0)
        {
            _globalAppBar.Height = sl.Value;
        }
    }

我已将此图像设置为1600X1000分辨率.

检查此屏幕拍摄.

《c# – 如何以编程方式设置AppBar高度?》

点赞