【问题标题】:How to make scrollviewer scroll pixels not components (wpf)如何使滚动查看器滚动像素不是组件(wpf)
【发布时间】:2013-10-31 08:43:38
【问题描述】:

我试图让我的滚动查看器完美滚动,也就是说我有一个滚动查看器,它包含一个 stackpanel ,堆栈面板包含一个用户制作的用户控件。并且它们可以在运行时动态增加或减少。

问题是,假设我的堆栈面板中只有 2 个用户控件,滚动查看器只有 2 个滚动级别,因此每次单击或鼠标滚轮移动都会滚动整个用户控件。

我该如何改变呢?是属性还是设计有误?

这里是它的 xaml 代码:

<ScrollViewer HorizontalAlignment="Left" Height="420" VerticalAlignment="Top" Width="862" Margin="0,0,-2,0" CanContentScroll="True" PanningRatio="0.1">
                <StackPanel x:Name="hpList" HorizontalAlignment="Left" Height="422" VerticalAlignment="Top" Width="843"/>
            </ScrollViewer>

堆栈面板会动态扩展或收缩。

【问题讨论】:

  • 设置 CanContentScroll="False" 它会神奇地工作。
  • 现在根本无法滚动!
  • 除了@devhedgehog 现在尝试使用 IsItemsHost="False" 设置 StackPanel

标签: c# wpf scrollviewer


【解决方案1】:

设置 CanContentScroll="False" 并移除堆栈面板的高度\宽度

【讨论】:

  • 成功了!谢谢,但你能解释一下高度\宽度与它有什么关系吗?
  • stackpanel 大小转到滚动内容大小,因此在scrollviewer 看来他不需要滚动,(如果我不清楚谷歌充满了答案:))
猜你喜欢
  • 1970-01-01
  • 2015-01-21
  • 2013-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
相关资源
最近更新 更多