【问题标题】:How to apply an effect of dimmed semi-opacity to a WPF window?如何将暗淡的半不透明效果应用于 WPF 窗口?
【发布时间】:2011-01-06 20:22:38
【问题描述】:

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

怎么可能达到这样的效果?

【问题讨论】:

    标签: wpf progress-bar opacity effects


    【解决方案1】:

    在 silverlight 中,您可以使用自定义用户控件来执行此操作,并将其宽度和高度设置为“自动”。您将拥有一些控件,因为 LayoutRoot 的宽度和高度也设置为自动,并且在其中您的进度条将居中居中(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" />
    

    【讨论】:

    • 我应该怎么做才能显示/隐藏进度条?我只想在必要时显示暗淡的背景和进度条。
    【解决方案2】:

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

    【讨论】:

    • 这很容易,看起来还可以
    猜你喜欢
    • 1970-01-01
    • 2011-10-12
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多