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

时间:2010-01-19 14:53:04

标签: wpf progress-bar opacity effects

在某些过程中在WPF窗口上显示进度条时,我希望窗口的其余部分变为半可见,可能会有一些颜色混合。

如何才能达到这样的效果?

2 个答案:

答案 0 :(得分:2)

最简单的方法是在想要调暗的控件和进度条之间放置一个半透明的矩形,然后在操作过程中让它可见。

答案 1 :(得分:2)

在silverlight中,您可以使用自定义用户控件执行此操作,并将其宽度和高度设置为“自动”。您可以使用一些控件,因为LayoutRoot的宽度和高度也设置为auto,并且您可以将进度条置于中间(Horizo​​ntalAlignment = Center)。然后,您可以将LayoutRoot的不透明度设置为0.5或任何您喜欢的

然后,当您将控件嵌入到表单的XAML中时,您可以将控件的Horizo​​ntalAlignment和VerticalAlignment设置为拉伸。这会导致控件的布局根伸展以填充您的表单,并且由于它的不透明度,您的表单变为半可见。由于您的进度条未设置为拉伸,因此它将保留在中心位置。

我想在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" />