显然,在使用SharedSizeGroup时,不能使用星号(*)。这里已经讨论过这一点: sizing
不幸的是,在那次讨论中,他们并没有为这个问题提供一个可行的解决方案。
我想显示一个控件列表,每行一个控件,布局如下:
(名称)(输入文本框)(X按钮)
它应该是这样的:
Description [ ] X
Name [ ] X
ID [ ] X但我却得到了
Description [] X
Name [] X
ID [] X第一栏应该和最长的字一样宽。第2列(条目textbox )应该扩展到填充所有剩余的空格(*),但这不适用于前面讨论过的SharedSizeGroup。该*被视为汽车,因此不伸展。
有什么想法吗?以下是XAML:
<ItemsControl ItemsSource="{Binding FilterList}" Margin="5,0,5,0" Grid.IsSharedSizeScope="True">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Margin="5,0,5,0" HorizontalAlignment="Left">
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="Column0" Width="Auto"/>
<ColumnDefinition SharedSizeGroup="Column1" Width="*"/>
<ColumnDefinition SharedSizeGroup="Column2" Width="Auto"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="{Binding FilterLabel}" HorizontalAlignment="Right"/>
<TextBox Grid.Column="1" Height="20" Text="{Binding FilterString, UpdateSourceTrigger=PropertyChanged}"/>
<Button Grid.Column="2" Content=" X " Margin="2" Visibility="{Binding ClearFilterVis}" Command="{Binding ClearFilterCommand}"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>发布于 2014-01-07 00:54:19
这是因为您将Grid's HorizontalAlignment设置为左而不是拉伸。或者只需删除Grid's HorizontalAlignment设置。正如@Highcore所说,在这种情况下,您似乎不需要SharedSizeGroup。
https://stackoverflow.com/questions/20959945
复制相似问题