如何指定应使用哪个scrollviewer

时间:2011-04-08 16:53:54

标签: wpf scrollviewer

考虑以下场景,表示左侧的项目列表和右侧的选定项目明细:

<ScrollViewer Name="scroll1" >
    <DockPanel>
        <ScrollViewer  Name="scroll2" DockPanel.Dock="Left" >
            <Really Long List Box />
        </ScrollViewer>
        <Selected Item Details />           
    </DockPanel>
</ScrollViewer>

(在上面的代码中,scroll2始终处于禁用状态。)

在某些情况下,“选定项目详细信息”高度可能优于窗口高度。在这些情况下,应该启用scroll1。但在大多数情况下并非如此。唯一比窗口高度大的控件是“Really Long List Box”,因此只能启用scroll2。

我知道最简单的方法是将scroll1放在“Selected Item Details”的正上方,如下所示:

<ScrollViewer  Name="scroll1"  >
    <Selected Item Details />      
</ScrollViewer>

但这是一个内部框架,分为几个UserControls,scroll1控件只作为子控件的phaceholder,所以我无法删除它。

当“选定项目详细信息”适合窗口时,有没有办法只启用scroll2?

1 个答案:

答案 0 :(得分:1)

如果没有明确设置scrollviewer的高度和宽度,那么它将采用父元素的高度和宽度。在这种情况下,看起来scroll2正在考虑停靠面板的高度和宽度,这就是为什么不启用scroll2滚动的原因。尝试设置scroll2的高度和宽度,你应该可以滚动它。