[英]WPF GridSplitter: changing the last column width when first one has a “*” for size
我有一種情況,網格的第一列應占用網格的剩余空間,但我希望用戶可以使用GridSplitter來調整最后一列的大小。
這是布局的簡化示例:
<?xml version='1.0' encoding='utf-8' ?>
<Window
x:Class="WPFApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="500">
<Grid Margin="10">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="100" />
</Grid.ColumnDefinitions>
<Border BorderBrush="Black"
BorderThickness="1" />
<Border BorderBrush="Black"
BorderThickness="1"
Width="20"
Grid.Column="2" />
<GridSplitter HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Width="10"
Grid.Column="3" />
<Border BorderBrush="Black"
BorderThickness="1"
Grid.Column="4" />
</Grid>
</Window>
在此示例中,邊框是在此處查看列的內容。
此示例不起作用,因為移動GridSplitter會更改左側列的大小,但應調整右側最后一列的大小。
有沒有人解決這個問題?
您可以嵌套兩個網格。
外部網格:
*
, auto
, 100
) 子網格:
*
, 10
, auto
) 該子網格包含問題中前3列的內容。
這樣,拆分器將在子網格和最后一列之間進行拆分。
因為第一列的寬度設置為*
所以它將獲得剩余的寬度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.