0

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

我已将HorizontalScrollBarVisibility设置为可见,应该强制它始终显示,但从不显示。我也尝试玩启用/禁用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

有趣的是,当我最大限度的形式 – RobV 2010-12-07 12:01:42

回答

0

找到问题的原因 - 正在显示的滚动条,但我已自动调整含有scoll观察者窗口被调整大小,这意味着水平scoll棒被从显示修剪控制

+0

水平滚动条只出现你能否描述了更多的细节您的解决方案?谢谢 – 2013-07-11 14:22:57

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