【发布时间】:2013-04-20 09:33:28
【问题描述】:
我使用 Windows Store-Kit 测试了我的 Windows Phone 8 应用程序,但它失败了。它说“高资源使用率”。我正在使用 MVVM 模式,这意味着我正在将视图中的元素与 ViewModel 属性绑定。
高使用率示例:我有一个 MainView,它有一个 ContentControl。 ContentControl 的Content 是另一个View(我们称之为ChildView)。当我单击 ChildView 中的 TextBox 时,会弹出 InputScope(您可以在其中键入)并且 View 会上升,因此可以看到 TextBox。当 View 上升时(注意 TextBox 在 Pivot 中),它开始滞后。我不知道为什么,因为我只关注 TextBox 而 PivotItem 上升。我的问题是如何降低资源使用率?如果您需要什么,请写下来,我会在这里发布。
MainPage.xaml
<Grid>
<Grid x:Name="LayoutRoot" HorizontalAlignment="Left">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ScrollViewer Name="MyScrollViewer" Height="Auto" HorizontalAlignment="Left" VerticalAlignment="Top" Width="Auto" HorizontalScrollBarVisibility="{Binding Horizontal}" VerticalScrollBarVisibility="{Binding Vertical}">
<!--ContentPanel - zusätzliche Inhalte hier platzieren-->
<StackPanel ScrollViewer.HorizontalScrollBarVisibility="Auto" Grid.Row="2" Opacity="50">
<ContentControl Content="{Binding MyContent}" Name="MyContentControl" IsTabStop="False" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch"/>
</StackPanel>
</ScrollViewer>
</Grid>
</Grid>
ChildView.xaml http://textuploader.com/?p=6&id=zMDoD
Store-Kit 结果(德语,但我认为很清楚)http://i.imagebanana.com/img/j6z24o9a/Unbenannt.png
这是视图的 ViewModel 中的属性的样子(在 Store-Kit 结果中显示)
private string _anlohnsteuer;
public string ANLohnsteuer
{
get { return _anlohnsteuer; }
set
{
_anlohnsteuer = value;
RaisePropertyChanged(() => ANLohnsteuer);
}
}
【问题讨论】:
-
请出示您的代码。
-
最好知道它是用于 wp8 还是 wp7。我还记得一些关于 ui 总是需要响应的事情,但我不确定它是否仅适用于 windows8 应用程序或 wp8。因此,也许检查您的某些代码是否使应用程序挂起或冻结 50 毫秒(这似乎是微软的幻数)并尝试将其最小化。也许您可以调度一些东西并将这些长调用分发到多个帧。
-
我正在使用 Windows Phone 8,很抱歉这么说,但我完全不知道你的意思是什么......当我点击时它似乎会“冻结”一个 TextBox 和 PivotItem 正在上升。
标签: c# performance memory-management windows-phone-8