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

时间:2016-09-04 11:47:35

标签: c# image xaml background uwp

我一直在寻找,老实说,我还没有解决这个非常简单的问题。我有一个弹出菜单,我已将事件附加到弹出菜单项。我想在选择项目时以编程方式更改我的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

感谢您的时间,并为无知感到抱歉。

1 个答案:

答案 0 :(得分:2)

有一个名为&#34; BaseUri&#34; ...的房产尝试将其添加到您的代码中。

进行以下更改:

    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 };
    }