更改按钮上的网格图像源单击通过Xaml.cs

时间:2015-06-02 18:36:05

标签: c# wpf xaml visual-studio-2013

我是Windows Store应用程序开发的新手。我坚持尝试通过c#代码更改网格图像。

这是我的Mainpage.Xaml代码

 <Grid x:Name="BG" KeyDown="operation" Width="1327" Height="740">
                <Grid.Background>
                    <ImageBrush  Stretch="UniformToFill" ImageSource="Assets/background.jpg"/>
                </Grid.Background>
<Button  x:Name="ThemeButton" BorderBrush="{x:Null}" FontSize="14" Content="Theme 1" Margin="25,0,0,0" HorizontalAlignment="Left" Click="ChangeBG"></Button>

这是我的Mainpage.Xaml.cs代码

  private void ChangeBG(object sender, RoutedEventArgs e)
        {
            ImageBrush b1 = new ImageBrush();
            b1.ImageSource = new BitmapImage(new Uri(@"D:\Visual Studio Project File\Sadiqali Calculator\Sadiqali Calculator\Assets\Theme2.png"));
            BG.Background = b1;

        }

按下按钮时,我得到黑色背景而不是图片。上面的代码来自其他线程。

如何通过单击按钮的代码更改网格的图像源?

2 个答案:

答案 0 :(得分:0)

当我使用自己的图片时,您的代码在这里工作正常。

检查D:\ Visual Studio项目文件\ Sadiqali计算器\ Sadiqali计算器\ Assets \ Theme2.png的位置...你确定这是有效的吗?

此外 - 如果从按钮单击调用,ChangeBG将在UI线程上运行。

答案 1 :(得分:0)

谢谢大家!你帮我解决了!

这就是我将代码更改为它的工作原理。

ImageBrush b1 = new ImageBrush();
        b1.ImageSource = new BitmapImage(new Uri(@"ms-appx:///Assets/Theme2.png", UriKind.RelativeOrAbsolute));
        BG.Background = b1;