【发布时间】:2021-08-25 01:59:52
【问题描述】:
我想这应该很简单,但我得到的不是我需要的图标,而是一堆方形框。
最初我是在 xaml 中对菜单进行硬编码:
code omitted
<ListBoxItem Name="menuHome" >
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="Segoe MDL2 Assets" Text="" FontSize="16" VerticalAlignment="Center" />
<TextBlock Text="Home" FontSize="16" VerticalAlignment="Center" Padding="15,0,0,0"/>
</StackPanel>
</ListBoxItem>
code omitted
我现在必须动态创建这个菜单,所以我有以下内容:
ListBoxItem menuHome = new ListBoxItem();
StackPanel menuHomeStackPanel = new StackPanel() { Orientation = Orientation.Horizontal };
menuHomeStackPanel.Children.Add(new TextBlock() { FontFamily = new FontFamily("Segoe MDL2 Assets"), FontSize = 16, VerticalAlignment = VerticalAlignment.Center, Text = "" });
menuHomeStackPanel.Children.Add(new TextBlock() { FontSize = 16, VerticalAlignment = VerticalAlignment.Center, Text = "Home", Padding = new Thickness(15, 0, 0, 0) });
menuHome.Content = menuHomeStackPanel;
menuHome.Name = "menuHome";
IconsListBox.Items.Add(menuHome);
除了 Segoe MDL2 Assets 字体外,这几乎给了我相同的效果,可以在下面的屏幕截图中看到:
任何想法 - 可能很简单...?
【问题讨论】:
-
对于 VB.net 应该使用 text = ChrW("&HE10F")