如何在XAML中打开子窗口时应用模糊效果?
当我在后面的代码中设置子窗口的所有者时,我正在应用此效果,但我正在寻找一种方法将其应用于XAML。有什么可以实现这个吗?
提前致谢!
答案 0 :(得分:2)
一种简单的方法是在样式中捕获对IsActive
属性的更改。弹出子窗口时,父窗口将被停用:
<Window.Style>
<Style TargetType="Window">
<Style.Triggers>
<Trigger Property="IsActive" Value="False">
<Setter Property="Effect">
<Setter.Value>
<BlurEffect Radius="5" />
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Window.Style>
这种方法的缺点是当您从应用程序切换时,窗口也会被停用。如果这对你来说是一个问题,那么你最好坚持在弹出对话框时在代码隐藏中应用效果的想法。
答案 1 :(得分:0)
对于接受的答案,设计时间的一个小改进是MultiTrigger。这样就可以找到一个在运行时始终为true的属性检查,但在设计时始终为false。例如,没有很好地记录的ToolTip属性。
<Window.Style>
<Style TargetType="Window">
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsActive" Value="False" />
<Condition Property="ToolTip" Value="A Tooltip"/>
</MultiTrigger.Conditions>
<Setter Property="Effect">
<Setter.Value>
<BlurEffect/>
</Setter.Value>
</Setter>
</MultiTrigger>
</Style.Triggers>
</Style>
</Window.Style>