更改背景图片来源形成
问题描述:
我的默认背景图片是"lobby.jpg
“当我点击了"Lights"
按钮,我希望它与"lobby1.jpg"
,反之亦然交换。这些图像存储在"obj\Debug\Images\"
。更改背景图片来源形成
而且我想实现相对(?)图像源uris,以便我可以在任何机器*问图像(不使用整个uri,只需要"obj\Debug\Images\"
)。
编辑:所以主要问题似乎是我尝试改变窗口背景,但没有意识到它被页面的网格背景覆盖了,所以我做的是设置mai n窗口背景为“lobby.jpg”,我使网格背景不可见,并使用答案中的代码在2个背景之间进行交换。
答
您可以使用AppDomain的基本路径exe文件(这是最简单的方法)
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;
}
所以,在这里我应该把这些线? – Xenofonos
您可以在需要时使用此路径。例如,在“灯光”按钮事件处理程序中。顶部看到我的回答 – user1576474
这看起来应该可以工作,但我现在有一些[问题](http://i.imgur.com/PsVpFKz.png)。 – Xenofonos