2016-02-29 46 views
1

我的默認背景圖片是"lobby.jpg「當我點擊了"Lights"按鈕,我希望它與"lobby1.jpg",反之亦然交換。這些圖像存儲在"obj\Debug\Images\"更改背景圖片來源形成

而且我想實現相對(?)圖像源uris,以便我可以在任何機器上訪問圖像(不使用整個uri,只需要"obj\Debug\Images\")。

編輯:所以主要問題似乎是我嘗試改變窗口背景,但沒有意識到它被頁面的網格背景覆蓋了,所以我做的是設置mai n窗口背景爲「lobby.jpg」,我使網格背景不可見,並使用答案中的代碼在2個背景之間進行交換。

回答

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