在 wpf 窗体中单击按钮时更改背景图像源
本文关键字:背景 图像 按钮 wpf 窗体 单击 | 更新日期: 2023-09-27 18:36:57
我的默认背景图像是"lobby.jpg
",当我单击"Lights"
按钮时,我希望它与"lobby1.jpg"
交换,反之亦然。这些图像存储在"obj'Debug'Images'"
中。
我还想实现相对(?)图像源 uris,以便我可以访问任何机器上的图像(不使用整个 uri,只需"obj'Debug'Images'"
)。
编辑:所以主要问题似乎是我尝试更改窗口背景,但没有意识到它被页面的网格背景"覆盖"。所以我所做的是将主窗口背景设置为"lobby.jpg",我使网格背景不可见,并使用答案中的代码在 2 个背景之间交换。
您可以使用 AppDomain basepath 来执行(这是最简单的方法)
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;
}