2016-04-26 7 views
0

私はRequestedThemeプロパティでページ全体のテーマを設定する方法を知っています。 しかし、私はどのように明示的にC#からMenuFlyoutのテーマを設定するのだろうかと思っていました。私はFrameworkElementクラスを継承していないUWPでMenuFlyoutのテーマを設定する方法は?

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

答えて

1

わかりました。フライアウトの視覚化を変更する場合は、MenuFlyoutPresenterStyleプロパティを使用できます。

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

<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のためにそれを使用します

1

MenuFlyoutによってこの問題を解決することができた

関連する問題