在某些过程中在 WPF 窗口上显示进度条时,我希望窗口的其余部分变得半可见,也许有一些颜色混合。
怎么可能达到这样的效果?
最简单的方法是在要变暗的控件和进度条之间放置一个半透明的矩形,然后在操作进行时使其可见。
在silverlight 中,您可以使用自定义用户控件执行此操作,并将其宽度和高度设置为“自动”。您将拥有一些控件,因为 LayoutRoot 的宽度和高度也设置为自动,并且在其中您的进度条将居中居中(HorizontalAlignment=Center)。然后,您将 LayoutRoot 的不透明度设置为 0.5 或您喜欢的任何值
然后,当您将控件嵌入到表单的 XAML 中时,您可以将控件的 HorizontalAlignment 和 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" />