如何在弹出窗口周围添加阴影

How to add a drop shadow around flyout

如何在 UWP 中的弹出按钮周围添加阴影?

我尝试使用 UWP Community Toolkit 中的 DropShadowPanel 来包装弹出窗口,但它没有与弹出窗口一起显示。我怎样才能实现它,以便投影与弹出窗口一起显示和消失?谢谢!

<Flyout x:Name="Flyout" Placement="Bottom">
    <TextBlock Text="Error message" />
</Flyout>

您必须将 DropShadowPanel 添加到 FlyoutPresenter,而不是 Flyout 本身。

<Flyout>
    <Flyout.FlyoutPresenterStyle>
        <Style TargetType="FlyoutPresenter">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate>

                        <!-- This is the root visual of the flyout -->

                        <toolkit:DropShadowPanel>
                            <Border Background="LightGray" Padding="12">
                                <ContentPresenter />
                            </Border>
                        </toolkit:DropShadowPanel>

                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Flyout.FlyoutPresenterStyle>

    <TextBlock Text="Error message" />
</Flyout>