我在另一个网格的第一列中有一个网格,并希望内部网格的行与父网格的行的高度相同。我们的想法是内部网格可以包含我希望能够隐藏的描述(但是与父网格的行保持对齐,因为这些描述与父网格中的某些问题相关联)。 WPF ColumnDefinition没有Visibility属性:(
我所拥有的代码:
<Grid ShowGridLines="true" Name="gridje">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" Name="row0"/>
<RowDefinition Height="Auto" Name="row1"/>
<RowDefinition Height="Auto" Name="row2"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid Grid.Row="0" Grid.RowSpan="3" ShowGridLines="true">
<Grid.RowDefinitions>
<RowDefinition Height="{Binding ElementName=row0, Path=ActualHeight, Mode=OneWay}"/>
<RowDefinition Height="{Binding ElementName=row1, Path=ActualHeight, Mode=OneWay}"/>
<RowDefinition Height="{Binding ElementName=row2, Path=ActualHeight, Mode=OneWay}"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0">Joepie</TextBlock>
<TextBlock Grid.Row="2">Joepie</TextBlock>
</Grid>
<TextBlock Grid.Row="0" Grid.Column="1" TextWrapping="WrapWithOverflow">Klaasje daskljf askldfas dfasjkl dfhklasjdfh askljdfh askljdfh h askljdfh klasdfh alsjkdfh askldfh askljfh alsdjkfh asklfh </TextBlock>
<TextBlock Grid.Row="1" Grid.Column="1" TextWrapping="WrapWithOverflow">Klaasje daskljf askldfas dfasjkl dfhklasjdfh askljdfh askljdfh h askljdfh klasdfh alsjkdfh askldfh askljfh alsdjkfh asklfh</TextBlock>
<TextBlock Name="textb" Grid.Row="2" Grid.Column="1" TextWrapping="WrapWithOverflow" Text="{Binding ElementName=row0, Path=ActualHeight, Mode=OneWay}"></TextBlock>
<Button Content="Button" Grid.Column="1" Grid.Row="2" Height="23" HorizontalAlignment="Left" Margin="66,173,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
</Grid>
奇怪的是,在VS2010的设计模式中,一切正常,但一旦运行,所有实际高度属性都保持为零。
对此有任何帮助将不胜感激。也许使用其他一些WPF控件来实现这一点也没问题。
答案 0 :(得分:2)
也许Grid.IsSharedSizeScope -property会帮助你。有了这个,您可以同步Grid-elements的宽度和高度。 有关如何使用它的示例包含在msdn文章中。