[英]WPF how to make Grid Reevaluate Max Widths on GridSplitter Column Resize?
[英]How to resize right outer Grid column with GridSplitter
我的應用程序中有以下網格結構:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0"
Visibility="{Binding LeftColumnVisibility, Converter={StaticResource BooleanToVisibilityConverter}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250"/>
<ColumnDefinition Width="3"/>
</Grid.ColumnDefinitions>
<DockPanel Grid.Column="0">
<!-- Stuff -->
</DockPanel>
<GridSplitter Grid.Column="1"
HorizontalAlignment="Stretch"
ResizeBehavior="PreviousAndCurrent"
ResizeDirection="Columns"/>
</Grid>
<DockPanel Grid.Column="1">
<!-- More Stuff -->
</DockPanel>
<Grid Grid.Column="2"
Visibility="{Binding RightColumnVisibility, Converter={StaticResource BooleanToVisibilityConverter}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3"/>
<ColumnDefinition Width="250"/>
</Grid.ColumnDefinitions>
<GridSplitter Grid.Column="0"
HorizontalAlignment="Stretch"
ResizeBehavior="CurrentAndNext"
ResizeDirection="Columns" />
<StackPanel Grid.Column="1">
<!-- So Much Stuff -->
</StackPanel>
</Grid>
</Grid>
左列的大小調整按預期工作。
我可以調整左列的大小,在保持所需大小的同時隱藏/顯示它。
當我嘗試調整右列的大小時:
我已經坐了很長時間了,並嘗試了我可能想到的屬性設置和網格嵌套的每一種組合。
在調整網格列的大小時,我希望中間列(Width="*")
保持不變。 只有右列的大小應該改變,這樣中間的列仍然會用完所有剩余空間。
如何讓我的 GridSplitter 正確調整大小?
非常感謝。
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Background="LightPink"/>
<GridSplitter Grid.Column="1"
Width="3"
ResizeBehavior="PreviousAndCurrent"
ResizeDirection="Columns"/>
</Grid>
<Border Grid.Column="1" Background="LightGreen"/>
<Grid Grid.Column="2">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="250"/>
</Grid.ColumnDefinitions>
<GridSplitter Grid.Column="0"
Width="3"
ResizeBehavior="CurrentAndNext"
ResizeDirection="Columns"/>
<Border Grid.Column="1" Background="LightCyan"/>
</Grid>
</Grid>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.