DataTemplate中的WPF网格列宽不起作用

时间:2016-02-22 20:16:22

标签: c# xaml mvvm catel

我有DataWindowUserControls(不同ViewModels)。

我的DataWindow.Xaml

<catel:DataWindow.Resources>
<DataTemplate DataType="{x:Type viewmodels:MessageViewModel}">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="20*"/>
            <ColumnDefinition Width="80*"/>
        </Grid.ColumnDefinitions>
        <Views:MessageView Grid.Column="1"/>
    </Grid>
</DataTemplate>
</catel:DataWindow.Resources>

<ItemsControl ItemsSource="{Binding Messages}">

我的UserControlMessageView.Xaml

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>

    <Border Grid.Row="0" Background="Red">
    </Border>

    <Border Grid.Row="1">
        ...
        Content
        ...
    </Border>
</Grid>

MessagesObservableCollection<ViewModelBase>();

UserControl中的内容在运行时动态添加DataWindow。如果UserControl中的内容宽度大于WindowWidth ColumnWidth(column1 20 *和column2 80 *)不起作用。我只看到Grid.Column(80 *),它的宽度是100 *。我究竟做错了什么? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

当窗口大小超过窗口大小时,无法渲染80%的窗口。 要解决此问题,您可以通过删除代码中的Windows Width属性来使窗口大小动态化。