0

WPFスクロールビューアで水平スクロールバーを表示するのに問題があります。 ScrollViewerには、入力オブジェクトに基づいてコンテンツを動的にレンダリングするユーザーコントロールが含まれているため、可変サイズの可能性があります。レンダリングすると、ユーザーコントロールの幅と高さが正しいサイズに設定されます。WPF用水平スクロールバーScrollViewer never displayed

私は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

興味深いことに水平スクロールバーは、私は、フォーム – RobV

答えて

0

は、問題の原因を発見 - スクロールバーが表示されていたが、ウィンドウのサイズが変更されたように私は自動的にscollビューアを含むコントロールのサイズを変更し、これを水平scollバーが表示

+0

を最大化する場合にのみ、あなたがより具体的にあなたのソリューションを記述することができる表示されますか?ありがとう –

1
からクリッピングされていたことを意味しました
WPF Layout Controls - ScrollViewer 

ほとんどの場合、スクリーに表示されるコントロールのサイズはわかりません。 これは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

関連する問題