[英]Change background image source on button click in wpf forms
我的默認背景圖像是"lobby.jpg
”,當我單擊"Lights"
按鈕時,我希望它與"lobby1.jpg"
交換,反之亦然。 這些圖像存儲在"obj\\Debug\\Images\\"
。
另外,我想實現relative(?)imagesource uri,以便可以在任何計算機上訪問圖像(無需使用整個uri,只需使用"obj\\Debug\\Images\\"
)。
編輯:所以主要的問題似乎是我嘗試更改窗口背景而沒有意識到它已被頁面的網格背景“覆蓋”。 因此,我要做的是將主窗口背景設置為“ 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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.