Граница внутри сетки, содержащей GridSplitter-s, перекрывает все следующие строки - PullRequest
1 голос
/ 25 марта 2020

Используя WPF, я пытаюсь создать Grid, который содержит представление списка, затем некоторый контроллер с деталями, а затем строку с одиночной кнопкой. Вот что я попробовал

<Grid DataContext="...">
    <Grid.RowDefinitions>
        <RowDefinition Height="177" MinHeight="177"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <ListView Grid.Row="0"  BorderBrush="LightGray" BorderThickness="1,1,1,0">
        <ListView.View>
            <GridView x:Name="SomeName"/>
        </ListView.View>
    </ListView>
    <GridSplitter Grid.Row="1" Height="5" HorizontalAlignment="Stretch" ResizeDirection="Rows" BorderBrush="LightGray" BorderThickness="1,0,1,0"/>
    <Border Grid.Row="2" Grid.RowSpan="1" BorderBrush="LightGray" BorderThickness="1,0,1,1" Height="Auto" Padding="1">
        <ContentControl Grid.RowSpan="1" ContentTemplateSelector="{StaticResource someTemplateSelector}" Content="{Binding itemBinding, Mode=OneWay}" Height="Auto"/>
    </Border>
    <GridSplitter Grid.Row="3"  Height="5" HorizontalAlignment="Stretch" ResizeDirection="Rows" BorderBrush="LightGray" BorderThickness="1,0,1,0"/>
    <Button Grid.Row="4"  Grid.RowSpan="1" DockPanel.Dock="Right" Margin="3,0,0,0" Command="{Binding Click}" Width="28" Height="28" Padding="0" VerticalAlignment="Bottom">
        <Image Width="16" Height="16" Source="{StaticResource Heart}"/>
    </Button>
</Grid>

Вышеприведенный XAML функционален, но граница перекрывает все строки ниже и включает в себя строку 2, вместо того, чтобы просто перейти к следующей GridSplitter.

И это выглядит примерно так:

enter image description here

1 Ответ

1 голос
/ 25 марта 2020

У вас есть пять строк, но только три определения строк

Добавьте необходимые определения строк:

<Grid.RowDefinitions>
    <RowDefinition Height="177" MinHeight="177"/>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="*"/>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="*"/>
</Grid.RowDefinitions>

и макет должен быть правильным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...