更改背景图片来源形成

更改背景图片来源形成

问题描述:

我的默认背景图片是"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; 
    } 
+0

所以,在这里我应该把这些线? – Xenofonos

+1

您可以在需要时使用此路径。例如,在“灯光”按钮事件处理程序中。顶部看到我的回答 – user1576474

+0

这看起来应该可以工作,但我现在有一些[问题](http://i.imgur.com/PsVpFKz.png)。 – Xenofonos