【发布时间】:2018-08-09 22:17:34
【问题描述】:
我在应用中使用 UWP 社区工具包中的 HamburgerMenu 控件,因为我想支持 Windows 10 移动版,因此新的 NavigationView 控件不适合我。
我正在尝试使用自定义字体 (FontAwesome) 为我的菜单绘制字形。这在我使用 NavigationView 时有效,但现在我尝试使用 HamburgerMenu,如果我在后面的代码中创建菜单项,我将无法正确呈现字形。
相反,字形参考显示为纯文本。我尝试继承 HamburgerMenuGlyphItem 并分配 Glyph 属性,但这也不起作用。
这是我的页面:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ct="using:Microsoft.Toolkit.Uwp.UI.Controls"
mc:Ignorable="d"
x:Class="Tweeter.MainPage"
x:Name="PageMain">
<Page.Resources>
<DataTemplate x:Key="HamburgerMenuItem">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="48" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<FontIcon Grid.Column="0"
FontFamily="{StaticResource FontAwesome}"
Glyph="{Binding Icon}" />
<TextBlock Grid.Column="1" Text="{Binding Label}" />
</Grid>
</DataTemplate>
</Page.Resources>
<Grid>
<ct:HamburgerMenu x:Name="navMain"
ItemTemplate="{StaticResource HamburgerMenuItem}"
ItemInvoked="navMain_ItemInvoked"
HamburgerVisibility="Visible"
UseNavigationViewWhenPossible="True">
<Frame x:Name="ContentFrame" Margin="0">
<Frame.ContentTransitions>
<TransitionCollection>
<NavigationThemeTransition/>
</TransitionCollection>
</Frame.ContentTransitions>
</Frame>
</ct:HamburgerMenu>
</Grid>
</Page>
这是我后面代码中的相关位:
private void LoadMenu()
{
List <MenuItem> theMenu = new List<MenuItem>();
MenuItem m = new MenuItem { Icon = "", Tag = "Feed", Label = "Twitter Feed", PageType=typeof(FeedPage) };
theMenu.Add(m);
navMain.ItemsSource = theMenu;
}
public class MenuItem : HamburgerMenuItem
{
public Type PageType { get; set; }
public string Icon { get; set; }
}
【问题讨论】:
标签: c# uwp-xaml windows-community-toolkit