在uwp

2016-03-27 37 views
1

的fontIcon上添加一個下拉菜單我目前正在使用一個自定義標題欄的項目,該項目是使用https://marcominerva.wordpress.com/2015/05/19/easily-manage-the-title-bar-in-windows-10-apps/中的示例創建的。使用該示例,我可以創建類似於http://i.stack.imgur.com/RzSFr.png的菜單。到目前爲止,自定義標題條形碼看起來像這樣在uwp

<Border x:Name="customTitleBar" VerticalAlignment="Top" Height="32" Background="Transparent" FlyoutBase.AttachedFlyout="{StaticResource FlyoutBase1}"> 
     <StackPanel Margin="12,5,5,5" Orientation="Horizontal"> 
      <FontIcon FontFamily="Segoe MDL2 Assets" Glyph="&#xE700;" 
         Foreground="Black" VerticalAlignment="Center" Margin="12,0,8,0"> 

      </FontIcon> 
      <TextBlock Text="My app" Foreground="Black" 
         VerticalAlignment="Center" Margin="25,0"/> 
     </StackPanel> 

     <i:Interaction.Behaviors> 
      <local:TitleBarBehavior IsChromeless="True"/> 
     </i:Interaction.Behaviors> 
    </Border> 

注意:Hamburger圖標是用上面的fontIcon插入的。與上面的圖片類似,我希望在下拉菜單中有共享和設置命令。我仍然是Windows 10 uwp的新手,有沒有辦法將FontIcom包裝在MenuFlyout控件中,我知道這聽起來不對。我也試圖改變XAML中PointerEntered的fontIcon的顏色,我如何在沒有在代碼中放置事件定義的情況下實現這一點?

回答

1

>>有沒有辦法來包裝FontIcom在MenuFlyout控制

你的意思是你要添加的MenuFlyout內FontIcon類似正如我已經與紅色高亮顯示?

enter image description here

如果是的話這將是更好的使用Flyout,而不是MenuFlyout的,因爲默認情況下MenuFlyout將與Text屬性(字符串值)許多MenuFlyoutItems,通過這種方式,我們不能加控制如MenuFlyout內的FontIcon。

對於如何使用Flyout來實現您的要求,請儘量參考:

<Flyout> 
     <StackPanel Orientation="Vertical"> 
      <StackPanel Orientation="Horizontal"> 
         <FontIcon FontFamily="Segoe MDL2 Assets" Glyph="&#xE72D;" Foreground="Black"/> 
         <TextBlock Text="Share"></TextBlock> 
       </StackPanel> 
       <StackPanel Orientation="Horizontal"> 
        <FontIcon FontFamily="Segoe MDL2 Assets" Glyph="&#xE713;" Foreground="Black"/> 
        <TextBlock Text="Settings"></TextBlock> 
       </StackPanel> 
      </StackPanel> 
</Flyout> 

結果:

enter image description here

>>我也試圖改變XAML中的PointerEntered上的fontIcon的顏色,如何在不將事件的定義置於代碼後面的情況下實現此目的?

對於這個問題,請在您的另一個線程我的回答是:

Simulating a mousehover effect on a fontIcon in uwp

謝謝。

+0

感謝@Fang,其實我解決了這個問題,並提出了修改代碼。使用代碼生成單獨從我的解釋錯誤之上。 – Tola

1

搜索互聯網後,在Flyout菜單上閱讀。方解答拋出一個錯誤「類型Flyout的值不能添加到集合或UIElementCollection元素中。彈出菜單隻能添加到button.flyout屬性根據https://msdn.microsoft.com/library/windows/apps/windows.ui.xaml.controls.flyout.aspx

我對方舟子的答案有所改進解決我的問題。重新實現如下所示

<Button FontFamily="Segoe MDL2 Assets" Content="&#xE700;" 
         Foreground="Black" VerticalAlignment="Center" Margin="12,0,8,0" Background="Transparent"> 
       <Button.Flyout> 
       <Flyout> 
        <StackPanel Orientation="Vertical"> 
         <StackPanel Orientation="Horizontal"> 
          <FontIcon FontFamily="Segoe MDL2 Assets" Glyph="&#xE72D;" Foreground="Black"/> 
          <TextBlock Text="Share" Margin="5,0"></TextBlock> 
         </StackPanel> 
         <StackPanel Orientation="Horizontal"> 
          <FontIcon Margin="0,5" FontFamily="Segoe MDL2 Assets" Glyph="&#xE713;" Foreground="Black"/> 
           <TextBlock Text="Settings" Margin="5,5"></TextBlock> 
         </StackPanel> 
        </StackPanel> 
       </Flyout> 
       </Button.Flyout> 
      </Button>