2016-04-26 27 views

回答

1

好,我是能夠通過

Style s = new Windows.UI.Xaml.Style { TargetType = typeof(MenuFlyoutPresenter) }; 
s.Setters.Add(new Setter(RequestedThemeProperty, ElementTheme.Dark)); 
myMenuFlyout.MenuFlyoutPresenterStyle = s; 
1

MenuFlyout解決這個不繼承FrameworkElement類。如果你想改變你的彈出窗口的可視化,你可以使用MenuFlyoutPresenterStyle屬性。

<Style x:Key="MenuFlyoutPresenterStyle" TargetType="MenuFlyoutPresenter"> 
     <Setter Property="RequestedTheme" Value="Dark"/> 
     <Setter Property="Background" Value="{ThemeResource SystemControlBackgroundChromeMediumLowBrush}" /> 
     <Setter Property="BorderBrush" Value="{ThemeResource SystemControlForegroundChromeHighBrush}" /> 
     <Setter Property="BorderThickness" Value="{ThemeResource FlyoutBorderThemeThickness}" /> 
     <Setter Property="Padding" Value="{ThemeResource MenuFlyoutPresenterThemePadding}" /> 
     <Setter Property="ScrollViewer.HorizontalScrollMode" Value="Disabled" /> 
     <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled" /> 
     <Setter Property="ScrollViewer.VerticalScrollMode" Value="Auto" /> 
     <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" /> 
     <Setter Property="ScrollViewer.IsHorizontalRailEnabled" Value="False" /> 
     <Setter Property="ScrollViewer.IsVerticalRailEnabled" Value="False" /> 
     <Setter Property="ScrollViewer.ZoomMode" Value="Disabled" /> 
     <Setter Property="MinWidth" Value="{ThemeResource FlyoutThemeMinWidth}" /> 
     <Setter Property="MaxWidth" Value="{ThemeResource FlyoutThemeMaxWidth}" /> 
     <Setter Property="MinHeight" Value="{ThemeResource MenuFlyoutThemeMinHeight}"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="MenuFlyoutPresenter"> 
        <Grid Background="{TemplateBinding Background}"> 
         <ScrollViewer x:Name="MenuFlyoutPresenterScrollViewer" 
         Padding="{TemplateBinding Padding}" 
         Margin="{TemplateBinding BorderThickness}" 
         HorizontalScrollMode="{TemplateBinding ScrollViewer.HorizontalScrollMode}" 
         HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}" 
         VerticalScrollMode="{TemplateBinding ScrollViewer.VerticalScrollMode}" 
         VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}" 
         IsHorizontalRailEnabled="{TemplateBinding ScrollViewer.IsHorizontalRailEnabled}" 
         IsVerticalRailEnabled="{TemplateBinding ScrollViewer.IsVerticalRailEnabled}" 
         ZoomMode="{TemplateBinding ScrollViewer.ZoomMode}" 
         AutomationProperties.AccessibilityView="Raw"> 
          <ItemsPresenter/> 
         </ScrollViewer> 
         <Border x:Name="MenuFlyoutPresenterBorder" 
         BorderBrush="{TemplateBinding BorderBrush}" 
         BorderThickness="{TemplateBinding BorderThickness}"/> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

,並用它爲您的fluout:

  <MenuFlyout MenuFlyoutPresenterStyle="{StaticResource MenuFlyoutPresenterStyle}"> 
       <MenuFlyoutItem Text="one"/> 
       <MenuFlyoutItem Text="two"/> 
      </MenuFlyout>