如何将变暗的半不透明效果应用于WPF窗口?

如何将变暗的半不透明效果应用于WPF窗口?,wpf,progress-bar,opacity,effects,Wpf,Progress Bar,Opacity,Effects,在某个过程中,当在WPF窗口上显示进度条时,我希望窗口的其余部分是半可见的,可能需要一些颜色混合 如何实现这种效果?最简单的方法是在要调暗的控件和进度条之间放置一个半透明矩形,然后在操作进行时使其可见。最简单的方法是在要调暗的控件和进度条之间放置一个半透明矩形在silverlight中,您可以使用一个自定义用户控件,将其宽度和高度设置为“自动”,这样做。你会有一些控制,因为宽度和高度的LayoutRoot也设置为Auto-,在其中,你的进度条以中间为中心(水平对齐=中心)。然后将LayoutRo

在某个过程中,当在WPF窗口上显示进度条时,我希望窗口的其余部分是半可见的,可能需要一些颜色混合


如何实现这种效果?

最简单的方法是在要调暗的控件和进度条之间放置一个半透明矩形,然后在操作进行时使其可见。

最简单的方法是在要调暗的控件和进度条之间放置一个半透明矩形在silverlight中,您可以使用一个自定义用户控件,将其宽度和高度设置为“自动”,这样做。你会有一些控制,因为宽度和高度的LayoutRoot也设置为Auto-,在其中,你的进度条以中间为中心(水平对齐=中心)。然后将LayoutRoot的不透明度设置为0.5或任意值

然后,当将控件嵌入表单的XAML中时,可以将控件的水平对齐和垂直对齐设置为拉伸。这会导致控件的布局根拉伸以填充表单,并且由于其不透明度,表单变得半可见。由于进度条未设置为“拉伸”,因此它将保留在中间

我想WPF中的情况大致相同

示例控件:

<UserControl x:Name="MyControl" width="Auto" Heigh="Auto">
    <Grid x:Name="LayoutRoot" Background="#AFFFFFFF" Width="Auto" Height="Auto" Opacity="0.01" >
        <ProgressBar Height="10" VerticalAlignment="Center" HorizontalAlignment="Center" Width="195" IsIndeterminate="True" Background="Black" Foreground="#FFFF0009">
        </ProgressBar>
    </Grid>
</UserControl>

用法示例:

<MyControl HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />

在silverlight中,您可以使用自定义用户控件,将其宽度和高度设置为“自动”。你会有一些控制,因为宽度和高度的LayoutRoot也设置为Auto-,在其中,你的进度条以中间为中心(水平对齐=中心)。然后将LayoutRoot的不透明度设置为0.5或任意值

然后,当将控件嵌入表单的XAML中时,可以将控件的水平对齐和垂直对齐设置为拉伸。这会导致控件的布局根拉伸以填充表单,并且由于其不透明度,表单变得半可见。由于进度条未设置为“拉伸”,因此它将保留在中间

我想WPF中的情况大致相同

示例控件:

<UserControl x:Name="MyControl" width="Auto" Heigh="Auto">
    <Grid x:Name="LayoutRoot" Background="#AFFFFFFF" Width="Auto" Height="Auto" Opacity="0.01" >
        <ProgressBar Height="10" VerticalAlignment="Center" HorizontalAlignment="Center" Width="195" IsIndeterminate="True" Background="Black" Foreground="#FFFF0009">
        </ProgressBar>
    </Grid>
</UserControl>

用法示例:

<MyControl HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />


这很容易结束,看起来很好。这很容易结束,看起来很好。我应该如何显示/隐藏进度条?我只想在必要时显示暗淡的背景和进度条。我应该如何显示/隐藏进度条?我只想在必要时显示暗淡的背景和进度条。