我是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;
}
按下按钮时,我得到黑色背景而不是图片。上面的代码来自其他线程。
如何通过单击按钮的代码更改网格的图像源?
答案 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;