6

我刚刚开始尝试使用 gridsplitters 并且偶然发现了一个非常奇怪的行为,我似乎无法修复它。显然其他人也有类似的问题(根据谷歌),但没有有用的评论。

我有一个有 2 行的网格。启动时,底部的 aHight为 250。顶行的其余部分为*。当我使用拆分器调整行的大小时,第一行的行为与预期的一样。但是当我向上拖动拆分器并通过程序窗口时,底行的内容将从窗口中掉出(=向下移动直到它消失)。我希望我不能使每一行都大于父容器。

<Grid x:Name="grid_main" ScrollViewer.VerticalScrollBarVisibility="Disabled" >
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition MinHeight="250"  Height="250"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <GridSplitter x:Name="splitter" 
        ResizeDirection="Rows" Grid.Column="0" Grid.ColumnSpan="1" Grid.Row="0" Width="Auto"
        Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="0" ResizeBehavior="BasedOnAlignment" />
    <Grid Grid.Column="0" Grid.Row="0">
    </Grid>
    <Grid Grid.Column="0" Grid.Row="1">              
    </Grid>
</Grid>

这是我的代码。两行的内容再次托管在网格中,为简单起见已被删除。再次:调整顶行的大小可以正常工作。但底行可以调整为无穷大。如果我硬编码一个MaxHeight. 但这必须取决于窗口大小。

4

4 回答 4

4

尝试将您的第二个更改RowDefinition为以下内容:

<RowDefinition MinHeight="250" MaxHeight="{Binding ElementName=grid_main, Path=ActualHeight}" Height="250"/>

这将确保行高不会超过窗口大小。

于 2013-05-31T08:16:39.343 回答
1

Richard 的解决方案对我不起作用(网格的 ActualHeight 与行高一起超出了窗口大小)。

使用 Snoop,我发现祖先 ContentPresenter 的 ActualHeight 没有增加。因此,以下底行定义对我有用,尽管如果我在顶行或底行设置 MinHeight 仍然会出现问题:

<RowDefinition Height="430"
               MaxHeight="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContentPresenter}}, Path=ActualHeight}"/>
于 2014-02-28T19:44:32.750 回答
0

仅由于第二行具有绝对高度,才会出现此问题。如果您真的想要绝对高度值,请尝试理查兹的解决方案。否则,也只需在第二行使用相对高度(例如 2*)。

于 2021-06-24T09:15:47.937 回答
0

Grigory Zhadko 的回答对我很好。

我对这段代码有问题

gridBase.RowDefinitions[1].Height = (GridLength)gridLengthConverter.ConvertFrom("1");
gridBase.RowDefinitions[3].Height = (GridLength)gridLengthConverter.ConvertFrom("1");

我把它修好了

gridBase.RowDefinitions[1].Height = new GridLength(0.1, GridUnitType.Star);
gridBase.RowDefinitions[3].Height = new GridLength(0.1, GridUnitType.Star);

电网变流器完美运行

于 2021-08-24T22:35:20.483 回答