【问题标题】:WPF - How to add effects (like Shadow) to a LabelWPF - 如何向标签添加效果(如阴影)
【发布时间】:2010-09-23 11:29:14
【问题描述】:

我有一个标签,想给它添加阴影。

我好像无法对它应用 DropShadowBitmapEffect。

我还能做什么?

【问题讨论】:

    标签: c# .net wpf visual-studio


    【解决方案1】:

    例如,您可以这样做:

    <Label Content="LabelText:" >
           <Label.BitmapEffect>
                 <DropShadowBitmapEffect Color="Black" Direction="320" ShadowDepth="10" Opacity=".5" Softness="9" />
            </Label.BitmapEffect>
    </Label>
    

    【讨论】:

    • 从 .NET 4.0 开始,这将无济于事。请改用 DropShadowEffect。
    • ...并在 4.0 之前的版本中使用,它们会减慢 UI 的绘制速度(即使它们很少用于小元素)。我不是 100% 确定这一点,但我记得 BitmapEffects 会强制渲染引擎使用软件渲染而不是硬件渲染(如果可用)。
    【解决方案2】:

    位图效果自 .NET 3.5 (SP1?) 起已过时。请改用DropShadowEffect

    编辑:由于效果已经过时了一段时间,在 .NET 4.0 中它们是一个空代码块,即什么也不做。

    【讨论】:

      【解决方案3】:

      使用DropShadowEffect 而不是DropShadowBitmapEffect。位图效果已过时。 但要注意效果。使用WPF performance Suite 检查所用效果的性能行为——我已经看到使用效果类对性能的影响非常糟糕。示例见here

      另一种选择是用Border 装饰标签。如果你相应地设置厚度,这就像一个阴影:

      <Border BorderThickness="1,1,20,20" BorderBrush="Black">
            <Label />
      </Border>
      

      (我还没有看上面的边框是什么样子的。你必须玩一下才能得到一个好的结果。

      【讨论】:

      • 感谢您的提示。我只是将它与单个字符标签一起使用,所以我应该没问题(也可以使用图像)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多