c# - Gridsplitter 未显示

标签 c# wpf gridsplitter

我是 WPF 新手。我这样声明我的 Grid:

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto"></ColumnDefinition>
    <ColumnDefinition Width="5"></ColumnDefinition>
    <ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
     <Grid.RowDefinitions>
         <RowDefinition Height="*"></RowDefinition>
         <RowDefinition Height="*"></RowDefinition>
         <RowDefinition Height="*"></RowDefinition>
     </Grid.RowDefinitions>
</Grid>

我基本上希望宽度为 5 的第 3 列成为 GridSplitter 并且可以调整左右列的大小。所以我有这个分离器代码:

<GridSplitter Grid.Column="1" Grid.RowSpan="3" ResizeDirection="Columns" Height="Auto"
              VerticalAlignment="Stretch" HorizontalAlignment="Center"
              Margin="0" Background="Black"/>

我没有在列中看到 GridSplitter。我设置对了吗?谢谢。

最佳答案

您的 GridSplitter 在其列中居中,但未定义宽度。所以你有效地将它居中,宽度为零。看起来您有两个网格,而您需要一个网格。

看起来你想要这样的东西:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"></ColumnDefinition>
        <ColumnDefinition Width="Auto"></ColumnDefinition>
        <ColumnDefinition Width="*"></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"></RowDefinition>
        <RowDefinition Height="*"></RowDefinition>
        <RowDefinition Height="*"></RowDefinition>
    </Grid.RowDefinitions>

    <GridSplitter Grid.Column="1" Grid.RowSpan="3" ResizeDirection="Columns" Height="Auto"
         Width="5" VerticalAlignment="Stretch" Margin="0" Background="Black"/>

</Grid>

如果您需要嵌套的网格,那么您可能需要复制列定义。

关于c# - Gridsplitter 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7110397/

相关文章:

c# - 如何在wpf中自动调整富文本框的大小?

wpf - 如何编辑WPF GridView并将其保存到数据库?

c# - ComboBox 选择完成 MVVM 后强制绑定(bind)更新

wpf - 具有最小约束的 GridSplitter

wpf - 固定大小的 GridSplitter MinWidth

c# - 如何知道在特定文件夹中创建了新文件夹

c# - 在 C# 中定义常量

c# - 升级 Xamarin 表单后按钮无法立即呈现

c# - 当第二个数字大于第一个数字时,为什么 Mod 运算符返回第一个数字?

wpf - 垂直和水平网格分割器