これに似た質問がいくつかありますが、これまで私は問題を解決できませんでした。ScrollViewer内のWPF WrapPanelの問題
私はWrapPanelの中に複数のコントロールがあり、WrapPanelはScrollViewerの中にあります。 ScrollViewerはグリッド内にあります。
WrapPanelのすべてのコントロールにOrientationを 'Vertical'に設定しようとしています(フローが下がり、垂直方向に左にスペースがなくなると水平方向に折り返すようにします)、HorizontalScrollBarそれ以上のスペースは水平になりません。次のようにこれまで
私のコードは次のとおりです。
<Grid x:Name="configGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ScrollViewer Grid.Row="0" VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Auto" Width="{Binding ElementName=configGrid, Path=ActualWidth}" Height="{Binding ElementName=configGrid, Path=ActualHeight}">
<WrapPanel HorizontalAlignment="Left" Orientation="Vertical" x:Name="ConfigWrapPanel" Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ScrollViewer}}, Path=ActualWidth}">
<Border BorderBrush="White" BorderThickness="1,1,1,1" CornerRadius="2" Margin="10">
<Expander IsExpanded="True" BorderThickness="0" Header="General">
// some controls here
</Expander>
</Border>
<Border BorderBrush="White" BorderThickness="1,1,1,1" CornerRadius="2" Margin="10">
<Expander IsExpanded="True" BorderThickness="0" Header="Another Block">
// some controls here
</Expander>
</Border>
// many more <border> blocks here....
</WrapPanel>
</ScrollViewer>
</Grid>
予想通り、このほとんど作品、様々なコンテンツが垂直方向に流れ、底に十分なスペースがない場合には、アップと右に移動してから始まりますもう一度トップ。しかし、私は決して水平スクロールバーを取得せず、コントロールは画面の右から消えるだけです。
私はこれが本当にシンプルなものだと確信していますが、私はそれを理解できません。
さらなる情報のビットとして、様々なボーダーコントロールとサブ要素が(私は垂直方向を選んだ理由であるWrapPanelなく横長より)動的幅および高さの全てである
任意の助けいただければ幸い。
は '幅= "{のElementName = configGrid結合、パス=幅}"'またはだけが 'を除去するために、 'ScrollViewer'の' width'を変更してみてください幅 ' – Gopichandar