16299で追加されたAcrylicBrush
を使って、MenuFlyoutとかを透けてる感じにしたい。いろいろ試した結果、こうなりました。
<Grid> <Grid.Resources> <Style x:Key="FlyoutPresenterStyle" TargetType="FlyoutPresenter"> <Setter Property="Background" Value="{ThemeResource SystemControlChromeMediumLowAcrylicElementMediumBrush}" /> </Style> <Style x:Key="MenuFlyoutPresenterStyle" TargetType="MenuFlyoutPresenter"> <Setter Property="Background" Value="{ThemeResource SystemControlChromeMediumLowAcrylicElementMediumBrush}" /> </Style> </Grid.Resources> <Grid.ContextFlyout> <MenuFlyout MenuFlyoutPresenterStyle="{StaticResource MenuFlyoutPresenterStyle}"> <MenuFlyoutItem Text="Item 1"/> <MenuFlyoutItem Text="Item 2"/> </MenuFlyout> </Grid.ContextFlyout> <Button HorizontalAlignment="Center" VerticalAlignment="Center" Content="Click me"> <Button.Flyout> <Flyout FlyoutPresenterStyle="{StaticResource FlyoutPresenterStyle}"> <TextBlock Text="Flyout Text" FontSize="64" /> </Flyout> </Button.Flyout> </Button> </Grid>
Flyout
と、MenuFlyout
は画面にインスタンス化されるとき、FlyoutPresenter
を親とするポップアップになるけど
そこの背景色を上書きするにはひとつづつスタイルを当てていかないとうまくいかなかった。
Generic.xamlとかで一気に上書きできるとよかったんだけど、そうもいかないみたいなので面倒だけどひとつずつ。。。