WPF动态绑定矢量图标
Converter中把值String转义
public class StringToIconConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value != null) { return Regex.Unescape(StringToUnicode(value.ToString())); } return value; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } /// <summary> /// 字符串转为UniCode码字符串 /// </summary> public static string StringToUnicode(string s) { if (!string.IsNullOrEmpty(s)) { //这里把格式 转为 \ue625 return s.Replace(@"&#x",@"\u").Replace(";",""); } return s; } }
Style
<!--IconStyle--> <Style x:Key="IconStyle" TargetType="TextBlock"> <Setter Property="FontFamily" Value="/Framework;component/Fonts/#iconfont"></Setter> <Setter Property="TextAlignment" Value="Center"/> <Setter Property="HorizontalAlignment" Value="Center"/> <Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="FontSize" Value="16"/> </Style>
XAML中使用Converter对值进行处理
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center"> <TextBlock Text="{Binding Path=Authority_icon,Converter={x:Static local:ConverterUtil.StringToIconConverter}}" Style="{StaticResource IconStyle}"/> </StackPanel>