Wpf 拉伸ItemsControl的项
我正在这里建立一个小WPF应用程序。它完全是用MVVM构建的,只使用链接到视图模型类型的数据模板 我已经看到了很多关于如何拉伸和剪裁Wpf 拉伸ItemsControl的项,wpf,datatemplate,itemscontrol,Wpf,Datatemplate,Itemscontrol,我正在这里建立一个小WPF应用程序。它完全是用MVVM构建的,只使用链接到视图模型类型的数据模板 我已经看到了很多关于如何拉伸和剪裁ListBoxes的内容以使项目填充其父项的问题。经过大量的实验后,我设法解决了这个问题,但现在我发现自己在使用ItemsControl时遇到了同样的情况,但同样的技巧似乎不起作用 下面是一个正在使用的数据模板(一个简单的文本框)。请注意我是如何尝试设置水平对齐的 <DataTemplate DataType="{x:Type vm:OneOfMyViewMo
ListBox
es的内容以使项目填充其父项的问题。经过大量的实验后,我设法解决了这个问题,但现在我发现自己在使用ItemsControl
时遇到了同样的情况,但同样的技巧似乎不起作用
下面是一个正在使用的数据模板
(一个简单的文本框
)。请注意我是如何尝试设置水平对齐的
<DataTemplate DataType="{x:Type vm:OneOfMyViewModelTypes}">
<TextBox
Text="{Binding Path=Value}"
HorizontalAlignment="Stretch"
/>
</DataTemplate>
<Grid Background="Gray">
<Grid.Margin>
<Thickness
Left="{StaticResource ConfigurationDefaultMargin}"
Right="{StaticResource ConfigurationDefaultMargin}"
Bottom="{StaticResource ConfigurationDefaultMargin}"
Top="{StaticResource ConfigurationDefaultMargin}"
/>
</Grid.Margin>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="_key" Width="Auto"/>
<ColumnDefinition SharedSizeGroup="_value" Width="*"/>
</Grid.ColumnDefinitions>
<ItemsControl
Background="DimGray"
Grid.IsSharedSizeScope="True"
ItemsSource="{Binding Path=Configuration, Mode=OneWay}"
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="_key"/>
<ColumnDefinition SharedSizeGroup="_value"/>
</Grid.ColumnDefinitions>
<TextBlock
Style="{StaticResource ExtensionConfigurationLabel}"
Grid.Column="0"
Margin="5,5,5,0"
Text="{Binding Path=Caption}"
/>
<ContentPresenter
Grid.Column="1"
HorizontalAlignment="Stretch"
Margin="5,5,5,0"
Content="{Binding}"
/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
我使用了颜色来查看控件的大小。网格
为灰色,项控件
为深灰色
这就是结果
从颜色中可以看出,包含的网格
会拉伸,而项控件
不会拉伸。我确实将其水平对齐
属性设置为拉伸
,但似乎没有效果。还有什么我需要做的吗
谢谢您的主(外部)网格中有两列,但您只使用第一列。
第二列使用了所有剩余的空间。Lester:我错误地认为我需要外部网格才能为其列使用共享大小范围。如您所见,我确实将每个项目的两个元素绑定到两列中的一列。显然,我可以在没有外部网格的情况下使用此功能,这使得ItemsControl按预期拉伸。但是项目(DataTemplate的文本框)仍然会自动调整大小以适应其自身的内容。