WPF使用绑定来分配静态资源
我正在尝试使用枚举来显示相应的图像。 为此我有一个值转换器,它将枚举转换为正确的资源名称。 我的资源定义如下:
这有效:
但事实并非如此,调用转换器并传回正确的值。 什么是正确的语法?
为完整起见,这是转换函数:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { switch ((AlarmCategory)value) { case AlarmCategory.Category1: return "AlarmCat1"; case AlarmCategory.Category2: return "AlarmCat2"; case AlarmCategory.Category3: return "AlarmCat3"; default: return null; } }
我会在转换器中返回资源:
在您的转换器中执行以下操作:
return Application.Current.FindResource("AlarmCat1") as BitmapImage;
使用resourcedictionary(app.xaml)为整个应用程序设置资源
在你的词典(Dictionary1.xaml)
由于您的资源现在已在applicationlevel上定义,因此代码现在将找到您的资源并将其还原。
您不能绑定StaticResource
密钥,因为它不是DependancyProperty
。 您必须使用converter
直接将Source
绑定到枚举,并更新转换器代码以返回Bitmap
本身。
第二个选项是使用Triggers
根据enum
值设置Source
属性。
- ToString和字符串连接 – 意外行为
- 将dll库从Resource加载到当前域(在主exe文件中嵌入dll)
- 线程中的exception处理
- ASP.NET MVC /entity framework错误 – 无效的列名称’Environment_Id’
- 更新Service Fabric服务时,.Net Framework类库dll总是会更改
- 优化MVC控制器中的C#代码
- 如何在不写入文件的情况下获取DataVisualization.Charting.Chart到iTextSharp.text.Image的图像?
- WebRequest.GetResponse锁定了吗?
- Visual Studio颜色属性编辑器中的自定义调色板