Wpf 平板电脑设备上的用户控制滚动性能
我有一个用户控件,上面有一组按钮和标签。 宽度1000px,高度70px 其中多达50个显示在列表框或列表视图中,我尝试了两者。在我的笔记本电脑上,滚动绝对没有问题,但目标硬件是一台在Atom Z670 1.5GHz上运行Win7的平板电脑,1核,英特尔GMA600@400MHz 在这个平板电脑上滚动几乎是不可能的-stucks。 如果我在较高的高度显示较少的控件,或者只显示其中的一部分来减小ListView或BoxView的宽度,效果会更好 我已经在网上读了一些关于WPF和滚动的文章,但没有一篇真正起到作用。它们似乎主要指向更高数量的元素 这是否意味着这个硬件不能在全屏宽度和高度上平滑滚动,或者我还有什么可以改进滚动性能的地方Wpf 平板电脑设备上的用户控制滚动性能,wpf,windows,performance,scroll,tablet,Wpf,Windows,Performance,Scroll,Tablet,我有一个用户控件,上面有一组按钮和标签。 宽度1000px,高度70px 其中多达50个显示在列表框或列表视图中,我尝试了两者。在我的笔记本电脑上,滚动绝对没有问题,但目标硬件是一台在Atom Z670 1.5GHz上运行Win7的平板电脑,1核,英特尔GMA600@400MHz 在这个平板电脑上滚动几乎是不可能的-stucks。 如果我在较高的高度显示较少的控件,或者只显示其中的一部分来减小ListView或BoxView的宽度,效果会更好 我已经在网上读了一些关于WPF和滚动的文章,但没有一
CanContentScroll不影响此效果http://stackoverflow.com/questions/1033841/is-it-possible-to-implement-smooth-scroll-in-a-wpf-listview如果不进行虚拟化,自动化可能会破坏大视图树。所以试着移除它
/// <summary>
/// List View without Automation
/// Fixes the bug with tablet and touch screens
/// </summary>
public class CustomListView : ListView
{
protected override AutomationPeer OnCreateAutomationPeer()
{
System.Diagnostics.Debug.Print("Automation Again");
return null;
}
protected override DependencyObject GetContainerForItemOverride()
{
return new NoAutomatioListViewItem();
}
}
class NoAutomatioListViewItem : ListViewItem
{
protected override AutomationPeer OnCreateAutomationPeer()
{
return null;
}
}
如果没有,自动化将为每个项目创建整个视图树,对于一个大列表,15k个项目足以看到问题,它将缓慢运行。您自定义了列表框吗?如果有,请尝试将IsVirtualization属性设置为true:。默认模板默认值为“虚拟化”,但如果使用自定义模板,则需要显式设置该值。ListView和ListBox都是系统默认值。。。我尝试了CanContendScroll真/假,但没有真正的区别。。。反应缓慢,但一切顺利。你认为是硬件问题还是我的错?