我的默认背景图片是"lobby.jpg
“,当我单击"Lights"
按钮时,我希望它与之交换,"lobby1.jpg"
反之亦然。这些图片存储在中"obj\Debug\Images\"
。
另外,我想实现relative(?)imagesource uri,以便可以在任何机器上访问图像(而无需使用整个uri,而仅使用"obj\Debug\Images\"
)。
编辑:所以主要问题似乎是我尝试更改窗口背景而没有意识到它已被页面的网格背景“覆盖”。因此,我要做的是将主窗口背景设置为“ lobby.jpg”,使网格背景不可见,并使用答案中的代码在2个背景之间交换。
您可以对exe使用AppDomain基本路径(这是最简单的方法)
var basePath= AppDomain.CurrentDomain.BaseDirectory;
var imageDirPath = $"{basePath}\\Images\\";
例子:
bool clicked = false;
private void button_Click(object sender, RoutedEventArgs e)
{
var basePath = AppDomain.CurrentDomain.BaseDirectory;
var imageDirPath = $"{basePath}\\Images\\";
if (clicked)
image.Source = new BitmapImage(new Uri(imageDirPath+ "lobby.jpg"));
else
image.Source = new BitmapImage(new Uri(imageDirPath + "lobby1.jpg"));
clicked = !clicked;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句