我对网格中的列有疑问。我希望列具有相同的宽度,并且该宽度不应取决于列的内容。
这是我的代码:
<Grid Margin="5" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<telerik:RadTreeView Margin="5,0,5,0" Grid.Column="0"
ItemsSource="{Binding TreeView0}" />
<telerik:RadTreeView Margin="5,0,5,0" Grid.Column="1"
ItemsSource="{Binding TreeView1}" />
<telerik:RadTreeView Margin="5,0,5,0" Grid.Column="2"
ItemsSource="{Binding TreeView2}" />
<telerik:RadTreeView Margin="5,0,5,0" Grid.Column="3"
ItemsSource="{Binding TreeView3}" />
</Grid>
当我在 RadTreeView 中展开树时,列会改变它的宽度,而其他列会分别改变。但我想有四列宽度 = 网格宽度的 1/4。RadTreeView 有自己的 ScrollBar 用于水平滚动。
解决方案
我在talegna的帮助下解决了我的问题。我为每个 RadTreeView 控件定义了 MaxWidth属性:
MaxWidth="{Binding ElementName=Column, Path=ActualWidth, Converter={StaticResource TreeWidthConverter}}"
我使用转换器只是减去边距的宽度。