UWP以编程方式更改XAML页面的背景图像c#

我一直在寻找,老实说,我还没有解决这个非常简单的问题.我有一个弹出菜单,我已将事件附加到弹出菜单项.我想在选择项目时以编程方式更改我的XAML页面的背景图像.

<Grid x:Name="main">
    <Grid.Background>
        <ImageBrush Stretch="Fill" ImageSource="Assets/bg_1.jpg"/>
    </Grid.Background>
</Grid>

这是我作为背景获得的默认图像(网格基本上是整个页面).

C#事件代码在这里:

private void MenuFlyoutItem_Click(object sender, RoutedEventArgs e)
{
    main.Background = new ImageBrush { ImageSource = new BitmapImage(new Uri("ms-appx:///MTG Life Counter/Assets/bg_2.jpg")) , Stretch = Stretch.None};
}

当我选择菜单项而不是将图像设置为背景时,它会使其变为白色.

Default background

我测试过,这不是图像的问题.我知道我正在做一些明显的错误,但我对UWP有点新意,我找不到解决方案.

Here is the blank background after I select to change it

谢谢你的时间,抱歉无知.

最佳答案 有一个名为“BaseUri”的属性…尝试将其添加到您的代码中.

进行这些更改:

    private void MenuFlyoutItem_Click(object sender, RoutedEventArgs e)
    {
        main.Background = new ImageBrush { ImageSource = new BitmapImage(new Uri(this.BaseUri, "Assets/bg_2.jpg")), Stretch = Stretch.None };
    }
点赞