【发布时间】:2021-06-02 10:08:05
【问题描述】:
标题可能不清楚,但我现在解释一下。我有一个表示模态的自定义控件(受 SingltonSean 启发),当我触发一个命令时,它会显示这个模态,它覆盖了它后面的其余元素,它有点像一个弹出窗口。现在我希望它背后的一切都变得模糊。我怎样才能做到这一点?
这是我的模态自定义控件:
<Style TargetType="{x:Type viewModel:Modal}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type viewModel:Modal}">
<ControlTemplate.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</ControlTemplate.Resources>
<Grid Visibility="{TemplateBinding IsOpen, Converter={StaticResource BooleanToVisibilityConverter}}">
<Grid.Background>
<SolidColorBrush Color="Black" Opacity="0.025" />
</Grid.Background>
<Border HorizontalAlignment="Center" VerticalAlignment="Center" UseLayoutRounding="True" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<Grid HorizontalAlignment="Center" VerticalAlignment="Center">
<Grid.OpacityMask>
<VisualBrush Visual="{Binding ElementName=border}" />
</Grid.OpacityMask>
<Border x:Name="border" Background="White" CornerRadius="20" />
<Grid Width="500" Height="600">
<StackPanel Width="300" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button Padding="10 5" Content="Close Modal" />
</StackPanel>
</Grid>
</Grid>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
【问题讨论】:
-
这能回答你的问题吗? Blur the background of the WPF container
-
它没有,因为我没有使用图像作为背景。 @Sinatr
-
您是否阅读了所有答案? This 应该这样做:后面的容器应该是模糊的。
-
对不起,它也不起作用。您是否在我的代码上尝试过该解决方案?
-
不,但我自己使用模糊效果,类似于那个答案。什么不工作?您尝试了什么、发生了什么以及您想要什么?