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