我想将Segoe MDL2 Assets中的某些项目用作从集合中剔除的菜单的图标。
我定义了我的收藏
NavItems = new ObservableCollection<NavItem>
{
new NavItem {Title = "Sign in", Icon="", ClassType = null },
new NavItem {Title = "Settings", Icon="", ClassType = typeof(Settings) }
};
在我的xaml中,我有一个列表框定义为
<ListBox ItemsSource="{Binding NavItems}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Height="24">
<ContentControl Content="{Binding Icon}" FontFamily="Segoe MDL2 Assets" />
<StackPanel Margin="20,0,0,0">
<TextBlock Text="{Binding Title}"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
问题是当渲染此列表框时,图标无法正确渲染(它们显示为一堆正方形)。但是,如果我直接在xaml中用图标值替换绑定语句,则它可以工作。我很好奇如何正确进行绑定。
(请注意,除了通用内容控件外,我还尝试了各种控件,它们的结果相同,因此我知道它与此无关)
非常感谢!
在C#中,unicode字符转义序列的前缀为\u
,因此您的代码应如下所示:
NavItems = new ObservableCollection<NavItem>
{
new NavItem { Icon = "\uE1E2", ... },
new NavItem { Icon = "\uE115", ... }
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句