【问题标题】:ScrollBar Disabled滚动条已禁用
【发布时间】:2012-06-28 10:04:26
【问题描述】:

我试图像这样实现一个 ScrollViewer;

<Height="auto" Width="auto"
            MaxHeight="500" MaxWidth="400"
            ResizeMode="NoResize" WindowStyle="None">
        <Grid>
            <StackPanel>
                <ScrollViewer Name="scrlBr">
                    <StackPanel Orientation="Vertical">
                        <TextBlock Name ="txtBlock" Margin="10" Height="auto" 
Width="auto" TextWrapping="Wrap"></TextBlock>
                        <Button Name="btnOk" Click="btnOk_Click" Width="80"
HorizontalAlignment="Center">Close!</Button>
                    </StackPanel>
                </ScrollViewer>
                <Label HorizontalAlignment="Center" FontSize="3" 
Name="lblScrollDown">\/</Label>
            </StackPanel>
        </Grid>
    </Window>

我遇到的问题是滚动条显示为已禁用,而文本显然从窗口消失了,我看不到 btnOk。当然,如果窗口有一个固定的高度,并且包含在Scrollviewer 中的TextBlockButton 比窗口大,那么应该启用滚动条,不是吗?

更新

我发现问题在于将ScrollViewer 包含在StackPanel 中。可以改用Grid 来尝试...更新即将到来。

解决方案

我对@9​​87654329@ 是问题的看法是正确的,并同意Heinzi 使用DockPanel 的建议,一切正常。 :) 谢谢!

【问题讨论】:

    标签: c# wpf xaml scrollbar


    【解决方案1】:

    问题是你的StackPanel。它总是占据它所需要的所有垂直空间,所以 ScrollPanel 的 container 比窗口本身大得多,而且 ScrollViewer 认为不需要滚动。

    解决方案:将StackPanel 替换为DockPanel。将 &lt;Label&gt; 声明移动到顶部并将其停靠在 DockPanel 的底部。 DockPanel 中的最后一个子节点(在本例中为 ScrollViewer)总是填充剩余空间:

    <Grid> 
        <DockPanel> 
            <Label DockPanel.Dock="Bottom" ... Name="lblScrollDown">\/</Label> 
            <ScrollViewer Name="scrlBr"> 
                 ...
            </ScrollViewer> 
        </DockPanel> 
    </Grid> 
    

    【讨论】:

      【解决方案2】:

      尝试在 ScrollViewer 中设置 True 上的 CanContentScroll 属性,并设置 StackPanel 的固定高度,因为 StackPanel 旨在向一个方向无限增长。或者更好的是,使用不同的面板来堆叠您的物品。

      【讨论】:

        【解决方案3】:

        也许你需要写这样的东西

        <ScrollViewer Name="scrlBr" VerticalScrollBarVisibility="auto" HorizontalScrollBarVisibility="auto">
        ...
        </ScrollViewer>
        

        【讨论】:

          猜你喜欢
          • 2016-04-17
          • 2012-06-02
          • 2017-07-22
          • 1970-01-01
          • 1970-01-01
          • 2012-10-07
          • 2015-05-31
          • 2012-02-08
          • 1970-01-01
          相关资源
          最近更新 更多