GridSplitter无法正常工作

时间:2017-11-06 23:33:13

标签: c# wpf gridsplitter

尝试使用GridSplitter,但它不起作用。将拆分器向左拖动很好,但向右拖动无效。我认为正确的网格是问题所在。但我不确定。请给我一些建议。

这是我的代码:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="100"/>
        <RowDefinition Height="{DynamicResource DefaultMargin}"/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition MinWidth="100"/>
        <ColumnDefinition x:Name="columnDefinition_One" Width="{DynamicResource DefaultMargin}"/>
        <ColumnDefinition x:Name="columnDefinition_Two" MinWidth="230" Width="{Binding ActualWidth, ElementName=Element1}"/>
    </Grid.ColumnDefinitions>
    <Grid x:Name="Layout" Grid.Row="2" Grid.Column="0">

    </Grid>
    <GridSplitter x:Name="gridSplitter" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ResizeDirection="Columns" ResizeBehavior="PreviousAndNext" Grid.Column="1" Grid.Row="2" Background="{StaticResource DarkGray}" />
    <Grid x:Name="grid_MonitoringView" Grid.Row="2" Grid.Column="2" Style="{DynamicResource DefaultPanel}" HorizontalAlignment="Stretch">
    <Border>
        <view1:ViewExample x:Name="viewExample"/>
    </Border>
    </Grid>
</Grid>

2 个答案:

答案 0 :(得分:0)

GridSplitter无法减小列的宽度,而不是MinWidth值。

如果你最大化窗口,你会发现它工作正常, 或者对于demostartion尝试删除MinWidth值:

<ColumnDefinition />
<ColumnDefinition x:Name="columnDefinition_One" Width="50"/>
<ColumnDefinition x:Name="columnDefinition_Two"/>

答案 1 :(得分:0)

Your code in my demo project

我将您的代码复制到我的演示项目中,它对我来说很好。 @lomed发现您的MinWidth值可能不正确,我也同意这一点。但是你说'grid_MonitoringView'没有受到影响。

您是否注意到我的右边框布局正确?所以真正的问题是ViewExample类。您的ViewExample包含的布局值不正确,例如MinWidth或其他具有较大布局宽度的视觉效果。