我有一个ListBox
在其模板中有一个网格以允许 4 列。一列是ListBox
. 我希望该列填充可用的水平空间。
列定义为:
<ControlTemplate TargetType="ListBoxItem">
<Grid ScrollViewer.CanContentScroll="True" Margin="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="20" />
<ColumnDefinition Width="50" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="30" />
</Grid.ColumnDefinitions>
<CheckBox VerticalAlignment="Center" Grid.Column="0" IsChecked="{Binding IsSelected,
RelativeSource={RelativeSource TemplatedParent},
Mode=TwoWay}" />
<TextBlock VerticalAlignment="Center" Grid.Column="1" Margin="5,0,5,0" Text="{Binding Id}" />
<TextBlock VerticalAlignment="Center" Grid.Column="2" Margin="5,0,5,0" Text="{Binding Title}" />
<Button HorizontalAlignment="Right" Grid.Column="3" Tag="{Binding Id}" Margin="5,0,5,0">-></Button>
</Grid>
</ControlTemplate>
我已经尝试了几种排列方式,除了显式的大小设置外,没有任何东西可以在窗口中修复。然后,当我调整窗口大小时,它不会随之调整大小。
ListBox
包裹在 aScrollViewer
中以允许垂直滚动(我猜这就是让我感到困惑的原因。)
关于如何让第三列仅填充可用空间而不是更多的任何想法?