.net WPF Grid.IsSharedSizeScope在两个父控件之间?
我需要在两个分组框中的网格之间共享列的宽度,XAML如下所示:.net WPF Grid.IsSharedSizeScope在两个父控件之间?,.net,wpf,xaml,.net-4.5,wpf-4.5,.net,Wpf,Xaml,.net 4.5,Wpf 4.5,我需要在两个分组框中的网格之间共享列的宽度,XAML如下所示: <GroupBox Header="Box A"> <StackPanel Orientation="Horizontal"> <!-- Labels --> <Grid> <Grid.ColumnDefinitions> <Colu
<GroupBox Header="Box A">
<StackPanel Orientation="Horizontal">
<!-- Labels -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="Labels"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition SharedSizeGroup="Rows"></RowDefinition>
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0">Label A</Label>
</Grid>
<!-- Fields -->
<ItemsControl Grid.IsSharedSizeScope="True" ItemsSource="{Binding Items}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition SharedSizeGroup="Rows"></RowDefinition>
</Grid.RowDefinitions>
<TextBox Text="{Binding PropertyA}"></TextBox>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</GroupBox>
<GroupBox Header="Box B">
<StackPanel Orientation="Horizontal">
<!-- Labels -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="Labels"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition SharedSizeGroup="Rows"></RowDefinition>
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0">Label B</Label>
</Grid>
<!-- Fields -->
<ItemsControl Grid.IsSharedSizeScope="True" ItemsSource="{Binding Items}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition SharedSizeGroup="Rows"></RowDefinition>
</Grid.RowDefinitions>
<TextBox Text="{Binding PropertyB}"></TextBox>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</GroupBox>
标签A
标签B
我已尝试在包含子网格的StackPanel和GroupBox上将Grid.IsSharedSizeScope设置为true,但这不起作用。我想知道在这种情况下,我应该采取什么方法来与“标签”的SharedSizeGroup共享网格列定义之间的大小
谢谢
Alex.用
网格将两个分组框围起来,并设置网格.IsSharedSizeScope
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid Grid.IsSharedSizeScope="True">
<Grid.Resources>
<x:Array x:Key="xItems" Type="sys:String">
<sys:String>Hello</sys:String>
<sys:String>World ddd</sys:String>
</x:Array>
<x:Array x:Key="xItems2" Type="sys:String">
<sys:String>Hello long fsdfhuzweb kbhui</sys:String>
<sys:String>World</sys:String>
</x:Array>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<GroupBox Grid.Column="0" Header="Box A">
<StackPanel Orientation="Horizontal">
<!-- Labels -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="Labels" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Grid.Row="0">Label A</Label>
</Grid>
<!-- Fields -->
<ItemsControl ItemsSource="{Binding Source={StaticResource xItems}}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="Fields" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition SharedSizeGroup="Rows" />
</Grid.RowDefinitions>
<TextBox Text="{Binding Mode=OneWay}" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</GroupBox>
<GroupBox Grid.Column="1" Header="Box B">
<StackPanel Orientation="Horizontal">
<!-- Labels -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="Labels" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition SharedSizeGroup="Rows" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0">Label B long</Label>
</Grid>
<!-- Fields -->
<ItemsControl ItemsSource="{Binding Source={StaticResource xItems2}}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="Fields" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition SharedSizeGroup="Rows" />
</Grid.RowDefinitions>
<TextBox Text="{Binding Mode=OneWay}" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</GroupBox>
</Grid>
</Page>
你好
世界ddd
你好,长fsdfhuzweb kbhui
世界
标签A
标签B长
希望这有帮助