DataTemplate 中的 WPF 网格列宽不起作用
WPF Grid Column width in DataTemplate does not work
我有DataWindow
和UserControls
(不同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}">
我的UserControl
:MessageView.Xaml
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Border Grid.Row="0" Background="Red">
</Border>
<Border Grid.Row="1">
...
Content
...
</Border>
</Grid>
Messages
: ObservableCollection<ViewModelBase>();
我在 UserControl
中的内容在运行时动态添加到 DataWindow
。如果 UserControl
中的内容宽度大于 WindowWidth ColumnWidth(column1 20* 和 column2 80*)不起作用。我只看到 Grid.Column(80*),它的宽度是 100*。我究竟做错了什么?
感谢您的帮助!
当元素的大小超过 windows 大小时,不可能渲染 windows 的 80% 的元素。
要解决此问题,您可以通过删除代码中的 Windows 宽度属性来使 windows 大小动态化。
我有DataWindow
和UserControls
(不同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}">
我的UserControl
:MessageView.Xaml
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Border Grid.Row="0" Background="Red">
</Border>
<Border Grid.Row="1">
...
Content
...
</Border>
</Grid>
Messages
: ObservableCollection<ViewModelBase>();
我在 UserControl
中的内容在运行时动态添加到 DataWindow
。如果 UserControl
中的内容宽度大于 WindowWidth ColumnWidth(column1 20* 和 column2 80*)不起作用。我只看到 Grid.Column(80*),它的宽度是 100*。我究竟做错了什么?
感谢您的帮助!
当元素的大小超过 windows 大小时,不可能渲染 windows 的 80% 的元素。 要解决此问题,您可以通过删除代码中的 Windows 宽度属性来使 windows 大小动态化。