【发布时间】:2019-10-06 10:05:56
【问题描述】:
我有一个 wpf ResourceDictionary,它托管了几个或多或少复杂的 xaml“图标”,以及应该托管这些图标的 UserControl。这个想法是在控件的 ViewModel 中有一个整数类型的公共属性 Id。我现在想获取此 Id 属性并将其转换为 ResourceDictionary 条目。我确信这是一个非常标准的用例,但由于某种原因我被卡住了。
这是 UserControl 中的实现
<Border Margin="4" Grid.Row="0"
BorderBrush="{StaticResource EyGrayTint1Brush}"
BorderThickness="0.5">
<Viewbox>
<!--Template="{StaticResource WelcomeIcon}"-->
<ContentControl Template="{Binding Id, Converter={local:IdToIconConverter}}"
Margin="20"/>
</Viewbox>
</Border>
这是转换器
public class IdToIconConverter : BaseValueConverter<IdToIconConverter>
{
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
//Here I would like to do the conversion
switch ((int)value)
{
case 1:
return null;
case 2:
return null;
default:
Debugger.Break();
return null;
}
}
有什么方法可以通过这种转换方式分配静态资源吗?
【问题讨论】:
-
你可以有一个字符串属性
IconName,而不是整数属性IconName,它可以保存图标的资源键。然后,在视图中使用Image并将其Source属性设置为图标名称。
标签: c# wpf resourcedictionary