none
遇到的问题 而且找到了规律...谁给解释一下来... RRS feed

  • 问题

  • 有个问题困扰我好多天...之前也问过一个问题...(http://social.microsoft.com/Forums/zh-CN/silverlightzhchs/thread/94085469-078e-443c-87b0-4d5174cd5670)

    今天我发现时怎么回事了...

    项目中我用了好几个ChildWindow .例如其中一个ChildWindow 就是加载数据时显示等待信息的...
    例如我的主页是 MainPage.xaml ,某一个操作需要加载数据时 会Show一个等待的ChildWindow 这时候 ChildWindow 上有个小小的动画 都会把Cup顶到很高...
    最终发现原因是我在MainPage里有好多元素用了DropSjamdpwEffect 和 BlurEffect

    把主界面里的所用的DropSjamdpwEffect 和 BlurEffect 都去掉就没问题了...
    为什么呢?


    ...
    2009年9月3日 5:42

答案

  • 对于位图效果影响性能这一点,微软自己曾经做出过解释(在WPF中解释过),大意如下。

    ------------------------------

    位图效果将会导致性能的下降,主要是CPU占用。且使用越多,CPU占用越严重。主要原因如下。

    1. 使用软件渲染(也就是CPU渲染),而非GPU渲染。

    2. 使用UI线程渲染,而非渲染线程。由于使用UI线程渲染,因此执行动画的控件及其整个UI树都需要渲染。这就意味着一个动画控件本身即使没有使用位图效果,但只要它的容器使用了,就需要渲染。只有在完全独立的控件中使用位图效果,才不会受到其它控件动画的影响。

    ------------------------------

    你所说的背景用了一些,正好是微软所提到的“动画控件的容器使用了位图效果”这一点。
    2009年9月3日 9:12
  • 就是比如你一个很大的图片用 BlurEffect ,再让他运动起来就耗费cpu了


    如果您觉得对您有帮助,请在“是否有帮助”点“是”;如果你觉得回复很满意,请“标记为已解答”
    2009年9月3日 7:28
    版主

全部回复

  • 对,用Effect再做动画占用cpu性能很大。还没优化呢,先静态的做,一定要动最好就去掉这些Effect
    如果您觉得对您有帮助,请在“是否有帮助”点“是”;如果你觉得回复很满意,请“标记为已解答”
    2009年9月3日 5:45
    版主
  • 对,用Effect再做动画占用cpu性能很大。还没优化呢,先静态的做,一定要动最好就去掉这些Effect
    如果您觉得对您有帮助,请在“是否有帮助”点“是”;如果你觉得回复很满意,请“标记为已解答”
    你的意思是动画中的元素用了Effect?
    我用的情况是 动画中没有涉及到用Effect ,只是界面中有个背景用了一些...
    ...
    2009年9月3日 6:06
  • 就是比如你一个很大的图片用 BlurEffect ,再让他运动起来就耗费cpu了


    如果您觉得对您有帮助,请在“是否有帮助”点“是”;如果你觉得回复很满意,请“标记为已解答”
    2009年9月3日 7:28
    版主
  • 对于位图效果影响性能这一点,微软自己曾经做出过解释(在WPF中解释过),大意如下。

    ------------------------------

    位图效果将会导致性能的下降,主要是CPU占用。且使用越多,CPU占用越严重。主要原因如下。

    1. 使用软件渲染(也就是CPU渲染),而非GPU渲染。

    2. 使用UI线程渲染,而非渲染线程。由于使用UI线程渲染,因此执行动画的控件及其整个UI树都需要渲染。这就意味着一个动画控件本身即使没有使用位图效果,但只要它的容器使用了,就需要渲染。只有在完全独立的控件中使用位图效果,才不会受到其它控件动画的影响。

    ------------------------------

    你所说的背景用了一些,正好是微软所提到的“动画控件的容器使用了位图效果”这一点。
    2009年9月3日 9:12