Silverlight 如何使两个控件的高度完全相同
希望两个控件占用所有可用空间,大小完全相同。另外,将一个控件的可见性更改为“折叠”时,我希望另一个控件占用空间。怎么可能呢 下面的xaml将确保控件具有相同的高度并填充空间。但是,无论控件的可见性如何,这两行都占用了空间Silverlight 如何使两个控件的高度完全相同,silverlight,Silverlight,希望两个控件占用所有可用空间,大小完全相同。另外,将一个控件的可见性更改为“折叠”时,我希望另一个控件占用空间。怎么可能呢 下面的xaml将确保控件具有相同的高度并填充空间。但是,无论控件的可见性如何,这两行都占用了空间 <Grid > <Grid.RowDefinitions> <RowDefinition Height="*"></RowDefinition>
<Grid >
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Name="t1" Grid.Row="0" Text="first" />
<TextBlock Name="t2" Grid.Row="1" Text="second" />
</Grid>
非常感谢您提供的任何帮助我想不出一种方法可以使用任何内置面板控件来完成您想要的操作 一个简单的方法是在每次更新可见性时更新行定义的数量:
int numberOfRows = grid.Children.Count(item => item.Visibility == Visibility.Visible);
grid.RowDefinitions.Clear();
for (int i=0 ; i<numberOfRows ; i++)
grid.RowDefinitions.Add(new RowDefinition());
int numberOfRows=grid.Children.Count(item=>item.Visibility==Visibility.Visible);
grid.RowDefinitions.Clear();
对于(int i=0;i我想不出一种方法来做你想做的事情,使用任何内置的面板控件
一个简单的方法是在每次更新可见性时更新行定义的数量:
int numberOfRows = grid.Children.Count(item => item.Visibility == Visibility.Visible);
grid.RowDefinitions.Clear();
for (int i=0 ; i<numberOfRows ; i++)
grid.RowDefinitions.Add(new RowDefinition());
int numberOfRows=grid.Children.Count(item=>item.Visibility==Visibility.Visible);
grid.RowDefinitions.Clear();
对于(int i=0;i如果您有少量固定数量的控件,那么您也可以使用替代解决方案,即将行高绑定到控件可见性。
为此,我们可以如下修改您的示例:
<Grid>
<Grid.Resources>
<local:VisibilityToRowHeightConverter x:Key="visibilityToRowHeightConverter" />
</Grid.Resources>
<Grid.RowDefinitions>
<RowDefinition Height="{Binding Visibility, ElementName=t1, Converter={StaticResource visibilityToRowHeightConverter}}" />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Name="t1" Text="first" />
<TextBlock Name="t2" Grid.Row="1" Text="second" />
</Grid>
因此,每当t1
折叠时,相应的RowDefinition
将其值设置为0,并在再次显示t1
时返回到一个星号。如果此控件的固定数量很少,则也可以使用替代解决方案,即将行高度绑定到控件可见性。
为此,我们可以如下修改您的示例:
<Grid>
<Grid.Resources>
<local:VisibilityToRowHeightConverter x:Key="visibilityToRowHeightConverter" />
</Grid.Resources>
<Grid.RowDefinitions>
<RowDefinition Height="{Binding Visibility, ElementName=t1, Converter={StaticResource visibilityToRowHeightConverter}}" />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Name="t1" Text="first" />
<TextBlock Name="t2" Grid.Row="1" Text="second" />
</Grid>
因此,每当t1
崩溃时,相应的RowDefinition
将其值设置为0,并在再次显示t1
时返回到一颗星。Silverlight stock Panel很难使用。请考虑实现StretchPanel
。
关于SLStretchPanel
实现:
而且Silverlight库存面板很难使用。考虑实现一个StretchPanel
。
关于SLStretchPanel
实现:
及