问题描述
|
我在另一个网格的第一列中有一个网格,并希望内部网格的行与父网格的行具有相同的高度。这个想法是内部网格可以包含我希望能够隐藏的描述(但要与父网格的行保持一致,因为这些描述与父网格中的某些问题相关联)。 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,Mode=OneWay}\"/>
<RowDeFinition Height=\"{Binding ElementName=row2,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,Mode=OneWay}\"></TextBlock>
<Button Content=\"Button\" Grid.Column=\"1\" Grid.Row=\"2\" Height=\"23\" HorizontalAlignment=\"Left\" Margin=\"66,173,0\" Name=\"button1\" VerticalAlignment=\"Top\" Width=\"75\" Click=\"button1_Click\" />
</Grid>
奇怪的是,在VS2010中的设计模式下,一切正常,但是一旦运行,所有实际的高度属性都将保持为零。
任何帮助,将不胜感激。也许使用其他WPF控件来完成此操作也没有问题。
解决方法
也许Grid.IsSharedSizeScope -property将为您提供帮助。这样,您就可以同步网格元素的宽度和高度。
msdn-article中包含一个有关如何使用它的示例。