WPF用户控件不支持网格比例宽度" *"在列表视图中使用时

时间:2018-04-30 01:33:14

标签: wpf xaml

我创建了一个简单的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> 会开始扩展并弄乱比例。在这种情况下,是否有理由不遵守列宽比例?

0 个答案:

没有答案