2017-09-20 228 views
0

我正在按照示例和文檔從https://developer.microsoft.com/en-us/windows/uwp-community-toolkit/controls/hamburgermenu計劃與控制。我複製了頁面底部的代碼來嘗試導航功能。而該文件提出UWP工具包漢堡菜單導航似乎不起作用

如果要啓用導航從漢堡 菜單的特定頁面,我們建議在 HamburgerMenu控制的XAML內容來聲明一個框架。

我創建了空白頁面,鏈接到MenuItem類,並在空白頁中引入一些文本塊的文本塊控件。在導航上,沒有任何顯示。使用實時視覺樹檢查應用程序,顯示空白頁面,但文本在哪裏?

enter image description here

任何人有一些建議,有什麼不好?在情況下,如果你很好奇我有以下

MainPage.xaml中我的所有代碼:

<Page 
    x:Class="App1.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:App1" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls" 
    mc:Ignorable="d"> 

    <Page.Resources> 
     <DataTemplate x:Key="DefaultTemplate" x:DataType="local:MenuItem"> 
      <Grid Width="240" Height="48" HorizontalAlignment="Left"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="48" /> 
        <ColumnDefinition /> 
       </Grid.ColumnDefinitions> 
       <SymbolIcon Grid.Column="0" Symbol="{x:Bind Icon, Mode=OneWay}" Foreground="White" /> 
       <TextBlock Grid.Column="1" Text="{x:Bind Name, Mode=OneWay}" FontSize="16" VerticalAlignment="Center" Foreground="White" /> 
      </Grid> 
     </DataTemplate> 
    </Page.Resources> 

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
     <controls:HamburgerMenu x:Name="hamburgerMenuControl" 
           PaneBackground="Black" 
           Foreground="White" 
           ItemTemplate="{StaticResource DefaultTemplate}" 
           ItemClick="OnMenuItemClick" 
           OptionsItemTemplate="{StaticResource DefaultTemplate}" 
           OptionsItemClick="OnMenuItemClick"> 
      <Frame x:Name="contentFrame"/> 
     </controls:HamburgerMenu> 
    </Grid> 

</Page> 

MainPage.xaml.cs中:

public sealed partial class MainPage : Page 
{ 
    public MainPage() 
    { 
     this.InitializeComponent(); 

     hamburgerMenuControl.ItemsSource = MenuItem.GetMainItems(); 
     hamburgerMenuControl.OptionsItemsSource = MenuItem.GetOptionsItems(); 
    } 

    private void OnMenuItemClick(object sender, ItemClickEventArgs e) 
    { 
     var menuItem = e.ClickedItem as MenuItem; 
     contentFrame.Navigate(menuItem.PageType); 
    } 
} 

MenuItem.cs:

class MenuItem 
{ 
    public Symbol Icon { get; set; } 

    public string Name { get; set; } 

    public Type PageType { get; set; } 

    public static List<MenuItem> GetMainItems() 
    { 
     var items = new List<MenuItem>(); 

     items.Add(new MenuItem() { Icon = Symbol.Map, Name = "Item 1", PageType = typeof(Views.BlankPage) }); 
     items.Add(new MenuItem() { Icon = Symbol.BrowsePhotos, Name = "Item 2", PageType = typeof(Views.BlankPage) }); 
     return items; 
    } 

    public static List<MenuItem> GetOptionsItems() 
    { 
     var items = new List<MenuItem>(); 
     items.Add(new MenuItem() { Icon = Symbol.Setting, Name = "Settings", PageType = typeof(Views.BlankPage) }); 
     return items; 
    } 
} 

BlankPage.xaml

<Page 
    x:Class="App1.Views.BlankPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:App1.Views" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d"> 

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
     <TextBlock FontSize="48">This is blank!</TextBlock> 
    </Grid> 
</Page> 
+1

textblock可能已經離開了可視區域..您是否嘗試添加任何其他控件,或者可能更改頁面網格背景顏色以查看您是否實際訪問了所需的頁面? – Pratyay

回答

0

BlankPage.xaml上的TextBlock從您設置爲白色的HamburgerMenu中獲取前景,因此自然白色背景上的白色文本不可見。嘗試明確地設置TextBlock的前景,如<TextBlock FontSize="48" Foreground="Red">This is blank!</TextBlock>,您會看到它。

+0

你就在這裏! – hardywang