【问题标题】:WPF DropShadowEffect performance issue, looking for replacementWPF DropShadowEffect 性能问题,正在寻找替代品
【发布时间】:2012-05-02 09:04:39
【问题描述】:

我的 wpf 应用程序运行得很慢。我正在使用 Windows 中的 wpf 性能分析工具,并注意到我的每帧硬件 IRT 非常高(100+)。我在帮助中读到这是由某些影响引起的。禁用某些效果后,我发现这是原因...

        <Border.Effect>
            <DropShadowEffect Direction="45" Color="#DDDDDD"/>
        </Border.Effect>

我在所有拖放对象上都使用了这种效果。

现在我正在寻找一种不会冻结整个应用程序的类似效果。 .net 4.0 中有什么效果可以用来实现这一点吗?

非常感谢

大卫

【问题讨论】:

  • 显卡/驱动的硬件规格是什么?您可能需要确保使用 GPU 而不是 CPU 渲染阴影。
  • 我的显卡是ati 4650M,驱动是2012.0309.43.976。但如果它是软件渲染的,那不是软件 IRT(几乎所有时间都是 0)吗?

标签: wpf vb.net .net-4.0


【解决方案1】:

在用户控件上使用位图缓存也解决了这个问题。除非缩放非常重要,否则您可以使用它...

<UserControl x:Class="myControl"
   CacheMode="BitmapCache"
 >
 <Grid>
 </Grid>
</UserControl>

【讨论】:

    【解决方案2】:

    你可以试试SystemDropShadowChrome

    【讨论】:

    • 是的,它工作得更好,但每秒帧数仍然较低。我正在考虑设置细节级别的选项。非常感谢
    猜你喜欢
    • 1970-01-01
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    相关资源
    最近更新 更多