RowSpan "Auto" объединяет две строки для WP8.1
У меня есть Grid, где я создал три строки, используя определение столбца. В первом ряду я поместил сетку с прямоугольником и установил Rowspan = 2. Во втором я также получил сетку с прямоугольником. Вместо того, чтобы первый ряд просто немного перекрывал второй, что я и хочу, они полностью перекрываются, и кажется, что есть только один ряд.
Высота RowDefinition Я установил на Авто, потому что я хочу изменить высоту строк, нажав кнопку позже.
Есть ли способ избежать слияния двух строк, используя автоматическую высоту для RowDefinition?
Код, который я получил до сих пор:
<Page
x:Class="GridRetreatTest.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:GridRetreatTest"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Height="100" Grid.RowSpan="2">
<Rectangle Fill="Blue"/>
</Grid>
<Grid Grid.Row="1" Height="100">
<Rectangle Fill="Red"/>
</Grid>
<Grid Grid.Row="2" Height="100">
<Rectangle Fill="Green"/>
</Grid>
</Grid>
1 ответ
Попробуй это:
XAML:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Height="100" >
<Rectangle Fill="Blue"/>
</Grid>
<Grid x:Name="grd1" Grid.Row="1" Height="100" Margin="0,-50,0,0">
<Rectangle Fill="Red"/>
</Grid>
<Grid Grid.Row="2" Height="100">
<Rectangle Fill="Green"/>
</Grid>
</Grid>
<StackPanel Grid.Row="4">
<Button Content="click" Click="Button_Click"></Button>
</StackPanel>
CS:
private void Button_Click(object sender, RoutedEventArgs e)
{
grd1.Margin = new Thickness(0, 0, 0, 0);
grd1.Height = 300;
}