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

标签 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

感谢您的宝贵时间,对于您的无知,我们深表歉意。

最佳答案

有一个名为“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 };
    }

关于c# - UWP 以编程方式更改 XAML 页面的背景图像 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39316590/

相关文章:

java - 屏幕截图与显示 View 不相似

c# - 为什么我们在实现 iNotifyPropertyChanged 时检查 PropertyChanged 事件是否为空值?

c# - C# 中的 WebBrowsing - 库、工具等 - 是否类似于 Perl 中的 Mechanize?

php - 如何让图片不拉伸(stretch)

javascript - 更改 dropzone.js 的默认功能

wpf - 难以理解和使用 xaml 标记扩展

c# - RxUI ObservableAsPropertyHelper 不适用于 XAML 绑定(bind)

xaml - 如何以编程方式在 Windows 8 中将切换开关状态设置为打开或关闭?

c# - 删除 'int value' 中的未知列 'where clause'

c# - 在 C# WinForms 中,我如何分配一个 labeltext 几秒钟然后再次删除它,而不中断其他代码的执行?