如何从工具提示 WPF 中获取阴影?

How to get a drop shadow from a Tool tip WPF?

这是我用控件模板制作的代码。我尝试 但它无法正常工作。任何人都知道如何在定制工具提示中实现投影。我尝试在我的模板中添加边框,以便出现阴影,但仍然没有阴影。

        <Style x:Key="{x:Type ToolTip}"
   TargetType="ToolTip">
            <Setter Property="OverridesDefaultStyle"
      Value="True" />
            <Setter Property="HasDropShadow" 
      Value="True" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ToolTip}">

                        <Grid x:Name="grid" >
                            <Border x:Name="Border" Margin="0,0,0,0"
            BorderThickness="0.5"
                                
            Width="{TemplateBinding Width}"
            Height="19">
                                <Border.Background>
                                    <LinearGradientBrush StartPoint="0,0"
                             EndPoint="0,1">
                                        <LinearGradientBrush.GradientStops>
                                            <GradientStopCollection>
                                                <GradientStop Color="White"
                            Offset="0.0" />
                                                <GradientStop Color="White"
                            Offset="1.0" />
                                            </GradientStopCollection>
                                        </LinearGradientBrush.GradientStops>
                                    </LinearGradientBrush>

                                </Border.Background>
                                <Border.BorderBrush>
                                    <SolidColorBrush Color="Gray" />

                                </Border.BorderBrush>


                                <Border.Effect>

                                    <DropShadowEffect ShadowDepth="6" Direction="135" Color="Maroon" Opacity="0.35" BlurRadius="0.0"/>

                                </Border.Effect>



                                <ContentPresenter Margin="4,0"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Top" />
                            </Border>


                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="HasDropShadow" Value="True" >

                                <Setter TargetName="Border"
                Property="CornerRadius"
                Value="0" />
                                <Setter TargetName="Border"
                Property="SnapsToDevicePixels"
                Value="true" />
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

Border.Background的效果覆盖Border.Effect.You的效果 将所有GradientStop设置为'white',效果与[=16=中将背景设置为白色相同]看到阴影,可以将Grid的背景设置为白色,去掉Border.Background的部分。下面是我编辑的Grid部分:

<Grid x:Name="grid" Background="White" >
                        <Border x:Name="Border" Margin="0,0,0,0" BorderThickness="0.5" Width="{TemplateBinding Width}" Height="19">
                            <Border.BorderBrush>
                                <SolidColorBrush Color="Gray" />
                            </Border.BorderBrush>
                            <Border.Effect>
                                <DropShadowEffect ShadowDepth="6" Direction="135" Color="Maroon" Opacity="0.35" BlurRadius="0.0"/>
                            </Border.Effect>
                            <ContentPresenter Margin="4,0" HorizontalAlignment="Left" VerticalAlignment="Top" />
                        </Border></Grid>