我有一个应用程序使用 XAML 和 C# (MVVM) 创建一个允许您启动和停止摄像头馈送的界面。
我想做的是根据变量在 OFF 和 ON 图像之间切换IsOn
。
我知道如何在 UI 中手动设置图像,
<Image Source="/MyApp.WpfUI;component/Resources/Images/Webcasting.png" />
但我不确定如何最好地根据条件动态更改图像。我已经考虑过 IF 语句,但不知道该怎么做。
有没有人有任何建议或想法?
我有一个应用程序使用 XAML 和 C# (MVVM) 创建一个允许您启动和停止摄像头馈送的界面。
我想做的是根据变量在 OFF 和 ON 图像之间切换IsOn
。
我知道如何在 UI 中手动设置图像,
<Image Source="/MyApp.WpfUI;component/Resources/Images/Webcasting.png" />
但我不确定如何最好地根据条件动态更改图像。我已经考虑过 IF 语句,但不知道该怎么做。
有没有人有任何建议或想法?
一个答案是:
将显示流的控件的 IsEnabled 属性绑定到代码中返回布尔值的属性。
在您看来:
<Image IsEnabled={Binding IsOn} Source="/MyApp.WpfUI;component/Resources/Images/Webcasting.png" />
在此属性的getter中,放置您的条件语句来确定是否返回 true 或 false。
在您的视图模型中:
public bool IsOn
{
get
{
if(<some condition>)
return true;
else
return false;
}
}
备注:
祝你好运。
您在这里有两个选择。您可以使用问题中提到的 if 语句手动执行此操作,也可以创建一个DataTrigger
& 将其分配给控件的ControlTemplate
.
DataTriggers 允许您在特定数据对象的值与您在 XAML 中指定的某些条件匹配时设置属性值。我建议阅读 DataTriggers 上的MSDN 文档,了解这些工作原理的一些基本示例。