我创建了一个简单的UserControl
,其Grid
的列宽设置为比例间距。
<UserControl {Usual UC definition stuff}>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<TextBox Text="{Binding Path=RotOrder}" Grid.Column="0" />
<TextBox Text="{Binding Path=Rot1}" Grid.Column="1"/>
<TextBox Text="{Binding Path=Rot2}" Grid.Column="2"/>
<TextBox Text="{Binding Path=Rot3}" Grid.Column="3"/>
</Grid>
</UserControl>
当我在窗口上单独使用用户控件时,即使控件设置为固定宽度且内容超出每个TextBox
中的可用空间,也会遵循比例间距。任何不适合的内容都会被遗漏。
我也尝试在ListView
内使用控件。我已将HorizontalContentAlignment
的{{1}}属性设置为&#34; Stretch&#34;这可确保所有项目的宽度相同。
ListViewItem
只要文本框的内容适合框内,控件就像魅力一样,间距与预期完全一致。但如果内容不合适,内容过多的 <ListView Name="MyList2" Width="150" HorizontalAlignment="Left">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate>
<local:UserControl1/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
会开始扩展并弄乱比例。在这种情况下,是否有理由不遵守列宽比例?