首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF GridSplitter不工作

WPF GridSplitter不工作
EN

Stack Overflow用户
提问于 2018-07-31 14:16:54
回答 2查看 548关注 0票数 0

我无法通过下面的示例代码使Gridsplitter发挥作用。网格拆分器不会移动或调整周围设置为填充可用空间的"Top“和"Buttom”网格行的大小:

代码语言:javascript
复制
<Grid Width="Auto" Height="Auto">
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <Grid Grid.Row="0">
        <TextBlock FontSize="55" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap">Top</TextBlock>
    </Grid>

    <Grid Grid.Row="1">
        <GridSplitter Height="5" HorizontalAlignment="Stretch" ResizeDirection="Rows"/>
    </Grid>

    <Grid Grid.Row="2">
        <TextBlock FontSize="55" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap">Bottom</TextBlock>
    </Grid>
</Grid>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-31 14:23:32

编辑:,正如克莱门斯所说,你的GridSplitter必须是你想要分割的网格的直接子级。当您这样做时,您正在将一个新网格放入父网格的第1行:

代码语言:javascript
复制
<Grid Grid.Row="1">
    <GridSplitter Height="5" HorizontalAlignment="Stretch" ResizeDirection="Rows"/>
</Grid>

您需要将拆分器直接放入要拆分的父网格中,并在元素标记中声明行:

代码语言:javascript
复制
<Grid Width="Auto" Height="Auto">
       <Grid.RowDefinitions>
           <RowDefinition Height="*"/>
           <RowDefinition Height="Auto"/>
           <RowDefinition Height="*"/>

       <TextBlock Grid.Row="0" FontSize="55" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap">Top</TextBlock>

       <GridSplitter Grid.Row="1" Height="5" HorizontalAlignment="Stretch" ResizeDirection="Rows"/>

       <TextBlock Grid.Row="2" FontSize="55" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap">Bottom</TextBlock>
</Grid>
票数 1
EN

Stack Overflow用户

发布于 2018-07-31 14:22:50

只需删除那些无用的网格:

代码语言:javascript
复制
<Grid Width="Auto" Height="Auto">
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <TextBlock FontSize="55" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap">Top</TextBlock>

        <GridSplitter Grid.Row="1" Height="5" HorizontalAlignment="Stretch" ResizeDirection="Rows"/>

        <TextBlock FontSize="55"  Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap">Bottom</TextBlock>
</Grid>

编辑:

为了清晰起见: GridSplitter控件只调整网格子层次结构中相同级别的元素。您可以在网格中放置任何您想要的东西,但是您必须将GridSplitter放到要调整大小的控件的同一级别。

你仍然可以这样做:

代码语言:javascript
复制
<Grid Width="Auto" Height="Auto">
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Grid>
        <TextBlock FontSize="55" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap">Top</TextBlock>
    </Grid>

    <GridSplitter Grid.Row="1" Height="5" HorizontalAlignment="Stretch" ResizeDirection="Rows"/>

    <Grid Grid.Row="2">
      <TextBlock FontSize="55"  HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap">Bottom</TextBlock>
    </Grid>
</Grid>

但是,GridSplitter必须与要调整大小的控件的级别相同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51615553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档