【发布时间】:2013-05-02 15:58:40
【问题描述】:
我目前正在我的 WP8 应用上使用 Store TestKit。
我有一个枢轴。一个 PivotItem 有几个元素,比如一个 TextBox,它绑定到我的 ViewModel (MVVM-Pattern)。无论如何,当我点击一个在 UI 中安静下来的 TextBox 时,动画并不流畅。
Store TestKit 中的错误是“由于 CPU 绑定动画导致帧速率低” 我所有的方法都使用最大值。 20% cpu,但这个需要 ~80%:
(Systemeigene Funktion = 系统管理功能
Stichprobe = 样本)
如何降低价值?因为它不是我创建的函数,所以我不能使用线程。我看过这个帖子http://www.expressionblend.com/articles/2012/03/23/wp7-performance-tip-translate-transforms/。它描述了我的问题,但没有给出解决方案。
这是我的 ViewModel 中的属性的样子:
private string _myval;
public string MyVal
{
get { return _myval; }
set
{
_myval = value;
RaisePropertyChanged(() => MyVal);
}
}
但是属性不是问题...
【问题讨论】:
-
如果您实际发布有性能问题的代码,它会有所帮助。 当然,您链接到的文章确实提供了解决方案。
-
是的,他有一个解决方案,但我不知道如何在我的项目中使用他的解决方案(或者他的解决方案是否可以解决我的问题......)。正如我所说,它是一个系统函数(见上图),所以我没有使用实际代码。我只有一个带有多个元素的 Pivot,它们绑定到 ViewModel 中的一个属性。
-
您是否尝试从属性中删除
RaisePropertyChanged(() => MyVal);?看起来这条线应该存在于财产之外。 -
还是一样。即使我完全删除 Binding 并像这样定义文本框:
,UI 更改(Pivot 和所有向上的元素)仍然不流畅/平滑......它是“生涩的”。 -
你有像我假设的文章作者那样的动画吗?我不想重复自己,但这篇文章的解决方案似乎直截了当。使用
TranslateTransform会导致 UI 更新由 GUI 完成,并且 UI 线程专用于它。
标签: c# performance memory-management windows-phone-8