我有一个无边界且最大化的窗口。我想在此无边界窗口中添加阴影。我使用了几种方法,例如将Border
添加到窗口中。它确实增加了阴影,但是当窗口最大化时,它只是使窗口变小并为其添加阴影。
我想拥有的是:
这是我使用的代码:
<Border Margin="10">
<Border.Effect>
<DropShadowEffect Color="Black"
Direction="270"
BlurRadius="10"
ShadowDepth="3" />
</Border.Effect>
<Grid Background="White" />
</Border>
答案 0 :(得分:0)
最大化窗口时,窗口不会变小。 Window
包含 Border
以及阴影,因此您认为较小的只是窗口内部边框的Margin
。 / p>
您可以创建带有触发器的Style
,该触发器检查父Maximized
的{{1}}状态。
Window
从<Style x:Key="BorderWindowStyle" TargetType="{x:Type Border}">
<Setter Property="Margin" Value="10"/>
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect Color="Black"
Direction="270"
BlurRadius="10"
ShadowDepth="3" />
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding WindowState, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" Value="Maximized">
<Setter Property="Margin" Value="0"/>
<Setter Property="Effect" Value="{x:Null}"/>
</DataTrigger>
</Style.Triggers>
</Style>
中删除样式中已设置的属性,并引用样式。
Border