我无法为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);
任何人都有任何想法/解决方案吗?
答案 0 :(得分:1)
WPF Layout Controls - ScrollViewer
大多数时候,我们都不知道控件的大小,这将在scree中显示。 还有依赖于产品分辨率的情况,因为这是wpf的基本属性。 所以这就是为什么在WPF中有一个控件,即ScrollViewer(附加属性),只要内容出现在显示区域,就可以滚动这些内容。
<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
答案 1 :(得分:0)
找到问题的原因 - 滚动条正在显示但我在调整窗口大小时自动调整包含scoll查看器的控件的大小,这意味着水平的scoll bar正在从显示中剪切