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

使GridSplitter跨行工作
EN

Stack Overflow用户
提问于 2018-06-19 23:12:46
回答 1查看 49关注 0票数 0

我试图让GridSplitter跨网格中的行工作:

但是,RowSpan属性在此控件的情况下似乎不起作用。

如何让GridSplitter 跨网格表工作,并在移动时共享列宽?

这是我的密码:

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

        <Grid Grid.Row="0">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width=".3*" MinWidth="100" />
                <ColumnDefinition Width="2" />
                <ColumnDefinition Width="*" MinWidth="400" />
            </Grid.ColumnDefinitions>

            <Grid.Resources>
                <Style TargetType="TextBlock">
                    <Setter Property="Padding" Value="3" />
                    <Setter Property="Foreground" Value="Silver" />
                    <Setter Property="FontWeight" Value="Bold" />
                    <Setter Property="HorizontalAlignment" Value="Center" />
                </Style>
                <Style TargetType="Border">
                    <Setter Property="BorderThickness" Value="1" />
                    <Setter Property="BorderBrush" Value="Silver" />
                    <Setter Property="Background" Value="Black" />
                </Style>
            </Grid.Resources>

            <Border Grid.Column="0">
                <TextBlock Text="First Column" />
            </Border>

            <GridSplitter
                Grid.RowSpan="1"
                Grid.Column="1"
                HorizontalAlignment="Stretch"
                ShowsPreview="True" />

            <Border Grid.Column="2">
                <TextBlock Text="Second Column" />
            </Border>
        </Grid>

        <Grid
            Grid.Row="1"
            Height="400"
            Background="Silver">

            <Grid.ColumnDefinitions>
                <ColumnDefinition Width=".3*" MinWidth="100" />
                <ColumnDefinition Width="*" MinWidth="400" />
            </Grid.ColumnDefinitions>

            <StackPanel Grid.Column="0">
                <TextBlock
                    FontSize="30"
                    Foreground="Red"
                    Text="First Column Content" />
            </StackPanel>

            <StackPanel Grid.Column="1">
                <TextBlock
                    FontSize="30"
                    Foreground="red"
                    Text="Second Column Content" />
            </StackPanel>
        </Grid>
    </Grid>
</StackPanel>
EN

回答 1

Stack Overflow用户

发布于 2018-06-19 23:50:17

在第一个GridSplitter中只有Gird。您可以将两个网格合并到一个网格中,以获得所需的结果。下面是合并的XAML,供您尝试:

代码语言:javascript
复制
<Grid.Resources>
    <Style TargetType="TextBlock">
        <Setter Property="Padding" Value="3" />
        <Setter Property="Foreground" Value="Silver" />
        <Setter Property="FontWeight" Value="Bold" />
        <Setter Property="HorizontalAlignment" Value="Center" />
    </Style>
    <Style TargetType="Border">
        <Setter Property="BorderThickness" Value="1" />
        <Setter Property="BorderBrush" Value="Silver" />
        <Setter Property="Background" Value="Black" />
    </Style>
</Grid.Resources>

<StackPanel Grid.Column="0">
    <Border>
        <TextBlock Text="First Column" />
    </Border>
    <TextBlock FontSize="30"
                           Foreground="Red"
                           Text="First Column Content" />
</StackPanel>

<GridSplitter Grid.Row="0" 
              Grid.Column="1"
              HorizontalAlignment="Stretch"
              ShowsPreview="True"
              Background="Gray"/>

<StackPanel Grid.Column="2">
    <Border>
        <TextBlock Text="Second Column" />
    </Border>
    <TextBlock FontSize="30"
                           Foreground="red"
                           Text="Second Column Content" />

</StackPanel>

另外,下面是结果输出的屏幕截图:

您还可以参考MSDN上的“如何操作”页面。

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

https://stackoverflow.com/questions/50938126

复制
相关文章

相似问题

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