Я перемещаю приложение WinForms в WPF. Все подходило до сих пор кроме отношения к моим попыткам использовать GridSplitter, который я никогда не могу, шов для создания изменяет размер чего-либо во времени выполнения.
Для проверки это не был просто мой код, я попытался скомпилировать образец GridSplitter из LearnWPF.com, и это, кажется, не работает также. Я ожидаю видеть, что стандарт изменяет размер курсора, когда я мышь по разделителю, которого не происходит, и насколько я вижу, не буду никаким другим визуальным представлением разделителя в окне также.
Что я пропускаю здесь?
Left Hand Side
Right Hand Side
В вашем примере GridSplitter
размещается в первом столбце. Я не помню правил выравнивания WPF, но думаю, что он, вероятно, размещается в левой части первого столбца. Это не совсем то, что вы хотели.
Гораздо проще заставить GridSplitter
занять строку или столбец, чем пытаться разделить строку или столбец с другими элементами управления.
<Window x:Class="UI.Test"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Test" Height="300" Width="300">
<Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Background="#feca00">
<TextBlock FontSize="35" Foreground="#58290A" TextWrapping="Wrap">
Left Hand Side
</TextBlock>
</StackPanel>
<GridSplitter
Width="4"
Grid.Column="1"
Background="Red"
VerticalAlignment="Stretch"
HorizontalAlignment="Center"/>
<Border
Grid.Column="2"
BorderBrush="#58290A"
BorderThickness="5"
CornerRadius="10">
<TextBlock FontSize="25" Foreground="#FECA00" TextWrapping="Wrap">
Right Hand Side
</TextBlock>
</Border>
</Grid>
</Grid>
</Window>