【问题标题】:Transparent background for text by opacity按不透明度显示文本的透明背景
【发布时间】:2016-09-17 22:58:51
【问题描述】:

我对 wpf 有点陌生。我想为文本制作透明背景。我用AllowsTransparency = true; background = Colors.Transparent 实现了它,但动画就像切菜一样。我在这里读到Strange Choppy WPF Animation 这对于AllowsTransparency 属性很常见,所以我想通过不透明度来实现。我有 XAML 代码:

 <Grid x:Name="Gridd">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Viewbox x:Name="MainWindow1">
            <TextBlock x:Name="textBlock" TextWrapping="Wrap" Text="00:00:00" FontFamily="Digital-7 Mono" FontSize="50" Grid.Row="0" Grid.Column="0"/>
        </Viewbox>
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Right"
                    VerticalAlignment="Bottom" />
    </Grid>

我想动态更改不透明度,每次我尝试通过不透明度使背景透明时,文本也会消失。有什么建议吗?

【问题讨论】:

  • 您需要创建一个具有 Opacity 属性的静态资源,并通过自定义绑定将其绑定到透明属性。
  • 静态资源是什么意思?有什么绑定的例子可以帮助我想象吗?
  • 好的!谢谢,我找到了解决方案,但我会考虑你的解决方案,这可能会更好:) 谢谢
  • 请为 cmets 点赞,因为他们将帮助其他人快速阅读有用的 cmets。

标签: c# .net wpf transparency opacity


【解决方案1】:

我用OpacityMask 解决了这个问题,当窗口上的Opacity 设置为0 时,“选择”颜色使其透明。现在我可以为OpacityMaskBackground 选择相同的Color。背景消失了,文字仍然可见

【讨论】:

  • 错了!!我没有注意到我还有allowtransparency = true,如果不将此属性设置为true,不透明度将不起作用
  • 通过OpacityOpacityMask 使背景透明是一个很好的解决方案,但如果AllowTransparency = false 会导致黑色背景
猜你喜欢
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-08
  • 2013-03-04
  • 1970-01-01
  • 2011-10-24
相关资源
最近更新 更多