【问题标题】:using gridsplitter to split two columns with width set to * in wpf在wpf中使用gridsplitter拆分宽度设置为*的两列
【发布时间】:2015-10-14 21:43:57
【问题描述】:

所以,我有一个非常奇怪的问题。我有一个列定义如下的网格

<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="10"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>

我的主要 XAML 如下:

<ScrollViewer Grid.Column="0"/>
<GridSplitter Grid.Column="1"/>
<ScrollViewer Grid.Column="2"/>

这段代码导致了一个奇怪的问题。当我移动拆分器时,第 0 列和第 2 列都开始调整大小。我总是可以在两列中将宽度设置为“自动”。但是,当页面第一次加载时,两个滚动查看器都会根据需要占用空间。

我希望两个滚动查看器在页面加载时都占据半屏,用户可以选择更改大小。基本上类似于窗口捕捉。我怎样才能在这里做到这一点?

【问题讨论】:

    标签: wpf xaml


    【解决方案1】:

    我相信您只为GridSplitter 保留中间列。这里的问题是您需要将GridSplitterResizeBehavior 更改为PreviousAndNext 以更改两列的大小而不是默认的BasedOnAlignment

    <GridSplitter Grid.Column="1" Background="Green" 
                  VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
                  ResizeBehavior="PreviousAndNext"/>
    

    事实上,BasedOnAlignment 的默认值在水平和垂直尺寸是拉伸的情况下会表现得很好,所以我们不需要明确指定ResizeBehavior

    <GridSplitter Grid.Column="1" Background="Green" 
                  VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
                  />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      • 2011-04-06
      • 2010-10-21
      • 2011-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多