1

我无法为 WPF 滚动查看器显示水平滚动条。包含一个用户控件,ScrollViewer它根据输入对象动态呈现其内容,因此可能具有可变大小 - 当它呈现自身时,它将用户控件的宽度和高度设置为正确的大小。

我设置HorizontalScrollBarVisibility为 Visible 应该强制它始终显示但它永远不会显示。我也尝试过启用/禁用CanContentScroll,但似乎没有任何区别。

垂直滚动条可以正常工作,没有问题。

                ScrollViewer scroll = new ScrollViewer();
                scroll.HorizontalContentAlignment = HorizontalAlignment.Left;
                scroll.VerticalContentAlignment = VerticalAlignment.Top;
                scroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;
                scroll.CanContentScroll = true;
                Grid.SetRow(scroll, 1);

                GalaxyViewer viewer = new GalaxyViewer(g);
                viewer.HorizontalAlignment = HorizontalAlignment.Left;
                viewer.VerticalAlignment = VerticalAlignment.Top;
                viewer.HideShips();
                viewer.IsEditable = this.IsEditable;
                viewer.GalaxyEdited += this._galaxyEditedHandler;
                if (this._activePlayer > 0 && !this.IsEditable) viewer.ShowShipsForPlayer(this._activePlayer);
                scroll.Content = viewer;
                ScrollViewer.SetCanContentScroll(viewer, true);
                ScrollViewer.SetHorizontalScrollBarVisibility(viewer, ScrollBarVisibility.Visible);

                scroll.UpdateLayout();
                grid.Children.Add(scroll);

有人对此有任何想法/解决方案吗?

4

2 回答 2

1

找到问题的原因 - 滚动条正在显示,但我在调整窗口大小时自动调整包含 scoll 查看器的控件的大小,这意味着水平 scoll 条正在从显示器中剪裁

于 2010-12-07T12:06:53.357 回答
1
 WPF Layout Controls - ScrollViewer

大多数时候,我们不知道控件的大小,它将显示在屏幕中。也有使产品分辨率依赖的情况,因为这是 wpf 的基本属性。所以这就是为什么在 WPF 中有一个控件,即 ScrollViewer(Attached property),它可以在内容到达显示区域时启用这些内容的滚动。

<ScrollViewer HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Visible">
        <Grid ScrollViewer.HorizontalScrollBarVisibility="Visible">
            <Grid RenderTransformOrigin="0.555,0.491">
                <Grid.RowDefinitions>

                    <RowDefinition Height="auto"></RowDefinition>
                    <RowDefinition Height="auto"></RowDefinition>
                    <RowDefinition Height="auto"></RowDefinition>
                    <RowDefinition Height="auto"></RowDefinition>

                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition ></ColumnDefinition>
                    <ColumnDefinition ></ColumnDefinition>
                    <ColumnDefinition ></ColumnDefinition>
                    <ColumnDefinition ></ColumnDefinition>
                    <ColumnDefinition ></ColumnDefinition>
                    <ColumnDefinition ></ColumnDefinition>
                    <ColumnDefinition ></ColumnDefinition>
                    <ColumnDefinition ></ColumnDefinition>
                </Grid.ColumnDefinitions>
    </Grid>
    </ScrollViewer>


Above example is a implementation of horizontal and vertical  scrollbar in a wpf form.

WPF TextBlock中的自动垂直滚动条?

详情请访问:http ://wpfbugs.blogspot.in/2014/02/wpf-layout-controls-scrollviewer.html

于 2015-11-18T14:22:16.707 回答