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;
}
Другие вопросы по тегам