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

How to set AppBar Height programmatically?

我正在 App.xaml.cs 中以这种方式创建全局 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, didn't work for me, so I decided to do it as for WP 8 给出的代码中(实际上是一种改编,因为在我的例子中,我使用的是 C# 而不是XAML).

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

我想设置应用栏的布局并在项目的所有页面上共享它(避免在每个页面中复制和粘贴代码)所以任何示例或帮助将不胜感激:)。 提前致谢!

正如您在评论中所说:"...但我想要实现的第一个目标是使用 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 分辨率。

检查此屏幕截图。