2017-12-12 53 views
0

Mahapps에서 제공하는 햄버거 메뉴에 메뉴 항목을 추가하려고합니다. 햄버거 메뉴는 ImageItems, IconItems 및 GlyphItems를 지원합니다. 사용하려는 항목 유형은 IconItems입니다. 이 게시물 (How to use icon in mahapps hamburger menu XAML)에 도움을 요청했지만 문제가 지속됩니다. 나는 또한이 블로그 게시물 (http://jkarger.de/2017/02/06/mahapps-hamburgermenu/)을 팔로우했습니다.메뉴 항목이 Mahapps.Metro에 표시되지 않습니다. 햄버거 메뉴

<controls:HamburgerMenu ItemTemplate="{StaticResource MenuItemTemplate}" 
          OptionsItemTemplate="{StaticResource MenuItemTemplate}" 
          Foreground="White" DisplayMode="CompactInline" 
          ContentTemplate="{StaticResource HamburgerMenuContentTemplate}"> 
     <controls:HamburgerMenuItemCollection> 

      <controls:HamburgerMenuIconItem Icon="{iconPacks:PackIconFontAwesome Kind=AddressBook}" Label="Address" x:Name="Item1" > 
       <controls:HamburgerMenuIconItem.Tag> 
        <patient:PatientView/> 
       </controls:HamburgerMenuIconItem.Tag> 
      </controls:HamburgerMenuIconItem> 


     </controls:HamburgerMenuItemCollection> 
    </controls:HamburgerMenu> 

데이터 템플릿 : 여기

내 코드입니다

<DataTemplate DataType="{x:Type controls:HamburgerMenuIconItem}" x:Key="MenuItemTemplate" > 
     <Grid Height="64"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="64" /> 
       <ColumnDefinition /> 
      </Grid.ColumnDefinitions> 

      <Grid Grid.Column="0"> 
       <Viewbox ToolTip="{Binding Label}" Width="32" Height="32" > 
        <Viewbox.Child> 
         <ContentControl Content="{Binding Icon}"/> 
        </Viewbox.Child> 
       </Viewbox> 
      </Grid> 

      <TextBlock Grid.Column="1" 
         VerticalAlignment="Center" 
         FontSize="16" 
         Foreground="White" 
         Text="{Binding Label}" /> 
     </Grid> 
    </DataTemplate> 



    <DataTemplate DataType="{x:Type controls:HamburgerMenuItem}" x:Key="HamburgerMenuContentTemplate"> 
     <Grid x:Name="TheContentGrid"> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="48" /> 
       <RowDefinition /> 
      </Grid.RowDefinitions> 

      <Border Grid.Row="0" 
        Background="#FF444444"> 
       <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> 
        <Image Source="../Resources/Module.ico" Width="25" Height="25" Margin="10,0"/> 
        <TextBlock x:Name="Header" 
           HorizontalAlignment="Center" 
           VerticalAlignment="Center" 
           FontSize="24" 
           Foreground="White" 
           Text="e-Requesting" /> 
       </StackPanel> 
      </Border> 

      <ContentControl x:Name="TheContent" 
          Grid.Row="1" 
          Focusable="False" 
          Foreground="{DynamicResource BlackBrush}" 
          Content="{Binding Tag}" /> 
     </Grid> 
    </DataTemplate> 

내 응용 프로그램을 실행하면 내가 왼쪽에있는 햄버거 메뉴를 볼 수 있습니다, 그것은 열리고 닫힙니다 햄버거를 누를 때 메뉴에 항목이 표시되지 않습니다. 또한 아이콘이나 이미지가없는 표준 메뉴 항목을 추가하여 메뉴 항목의 레이블을 최소한으로 볼 수 있는지 확인하려고 시도했지만 아무 것도 표시되지 않습니다.

제안 사항은 훌륭합니다.

+1

내가 틀릴 수도 있고 (햄버거 자체에 익숙하지 않을 수도있다.)하지만 HamburgerMenuItem-s를 컨텐트로 설정하거나 어디에서나 'ItemsSource'를 설정하는 것을 보지 않는다면 템플릿을 정의하는 것입니다. – NSGaga

+0

@NSGaga 여기에 정의되어 있습니다. : (첫 번째 코드 블록 참조) – rejy11

+0

@NSGaga 네가 맞아! 내 안에 ItemCollection을 중첩시켜 ItemsSource 태그를 정의해야했습니다. – rejy11

답변

1

(댓글을 기반으로하면 분명히 문제가 해결됨)
'HamburgerMenuItem'을 콘텐츠 또는 'ItemsSource'로 설정하는 것을 볼 수 없습니다. 템플릿을 정의하는 것입니다.