У меня странная проблема с Gridsplitters, которую я пытался решить весь день, но ни документация, ни Google действительно не смогли помочь мне с этой проблемой.
Проблема в том, чтоУ меня есть сетка с несколькими сеточными сплиттерами, где некоторые строки имеют разные единицы высоты.Три строки имеют конкретные значения высоты, а одна строка имеет 1 звезду, чтобы она «впитывала» все оставшееся пространство.
К сожалению, это вызывает некоторое странное поведение gridsplitter.По сути, попытка установить высоту GridRow 4 и 6 с помощью манипулятора gridsplitter в строке 5 не повлияет на высоту строки 6, нижнего ряда.Вместо этого он манипулирует строкой 4 и строкой 2 и перекрывает сплиттер сетки в строке 3.
Если бы я установил все высоты строки на определенную высоту пикселя, все сплиттеры сетки работают нормально, но это позволяет сетке расти дальше.край экрана, который не соответствует предназначению.
Я сделал небольшой пример проекта для иллюстрации проблемы.
<Window x:Class="GridSplitterTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:GridSplitterTest"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="100"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="100"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="50"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center" >TextBlock01</TextBlock>
<GridSplitter Grid.Row="1" Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Center" Background="Black" ResizeBehavior="PreviousAndNext" ResizeDirection="Rows"></GridSplitter>
<TextBlock Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center" >TextBlock02</TextBlock>
<GridSplitter Grid.Row="3" Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Center" Background="Black" ResizeBehavior="PreviousAndNext" ResizeDirection="Rows"></GridSplitter>
<TextBlock Grid.Row="4" HorizontalAlignment="Center" VerticalAlignment="Center" >TextBlock03</TextBlock>
<GridSplitter Grid.Row="5" Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Center" Background="Black" ResizeBehavior="PreviousAndNext" ResizeDirection="Rows"></GridSplitter>
<TextBlock Grid.Row="6" HorizontalAlignment="Center" VerticalAlignment="Center" >TextBlock04</TextBlock>
</Grid>
Любой, у кого естьхорошая идея о том, что не так и есть ли способ решить эту проблему?