我正在将WinForms应用程序迁移到WPF。到目前为止,除了我尝试使用GridSplitter的尝试外,一切都进行得很顺利,我从未缝过在运行时调整大小的内容。
为了确保它不仅是我的代码,我尝试从LearnWPF.com编译GridSplitter sample,而且似乎也不起作用。我希望当我将鼠标悬停在拆分器上时看到标准的调整大小光标,并且据我所知,窗口中也没有其他可视化的拆分器表示形式。
我在这里想念什么?
<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 />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<StackPanel Background="#feca00" Grid.Column="0">
<TextBlock FontSize="35" Foreground="#58290A"
TextWrapping="Wrap">Left Hand Side</TextBlock>
</StackPanel>
<GridSplitter/>
<Border CornerRadius="10" BorderBrush="#58290A"
BorderThickness="5" Grid.Column="1">
<TextBlock FontSize="25" Margin="20" Foreground="#FECA00"
TextWrapping="Wrap">Right Hand Side</TextBlock>
</Border>
</Grid>
最佳答案
在您的示例中,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>
关于wpf - 为什么我的GridSplitter根本不工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2953276/