スプリッターを使用して列の幅を変更できる 2 列のレイアウトを構築しようとしています。ブラウザー ウィンドウのサイズが変更されても、右の列の幅は変更されません (グリッド幅に比例してはなりません)。両方の列の幅は最小にする必要があります。ブラウザ ウィンドウが狭すぎて両方の列を表示できない場合、スクロールバーが表示されます。
これは私のXAMLです:
<Grid x:Name="LayoutRoot" Background="White">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled">
<Grid Height="200" Margin="0,0,0,0" MinWidth="400" VerticalAlignment="Top">
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="300" Width="300*" />
<ColumnDefinition Width="10" />
<ColumnDefinition MinWidth="100" Width="100"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" Background="Red" x:Name="LeftColumn"></Grid>
<sdk:GridSplitter Grid.Column="1" HorizontalAlignment="Center" Width="10" Background="Black" />
<Grid Grid.Column="2" Background="Green" x:Name="RightColumn"></Grid>
</Grid>
</ScrollViewer>
</Grid>
私が抱えている問題は、スプリッターが左にドラッグされ、左の列の最小幅に達すると、右の列が非常に急速に拡大し始め、スクロールバーが表示されることです。右側の列から幅の設定を削除すると、奇妙な動作が解消されますが、ウィンドウのサイズが変更されると、右側の列が比例して拡大し始めます...
スプリッターを右にドラッグしたときと同じように動作させたい - 最小幅に達したら停止させたい.