Wpf 如何使GridSplitter在两个极端之间移动

Wpf 如何使GridSplitter在两个极端之间移动,wpf,Wpf,我在垂直网格中有一个Gridsplitter,理想情况下,我希望在Gridsplitter中看到两个按钮。“向上”按钮会自动将拆分器移动到最高的顶部位置,而“底部”按钮会将拆分器一直向下移动。但是,GridSplitter不能包含其他项。有什么想法吗?我想制作一个面板,然后将其夹在两个GridSplitter之间?GridSplitter继承自Control,因此您只需为其定义一个包含两个按钮的模板: <ControlTemplate x:Key="SplitterWithButtons"

我在垂直网格中有一个Gridsplitter,理想情况下,我希望在Gridsplitter中看到两个按钮。“向上”按钮会自动将拆分器移动到最高的顶部位置,而“底部”按钮会将拆分器一直向下移动。但是,GridSplitter不能包含其他项。有什么想法吗?我想制作一个面板,然后将其夹在两个GridSplitter之间?

GridSplitter继承自Control,因此您只需为其定义一个包含两个按钮的模板:

<ControlTemplate x:Key="SplitterWithButtons" TargetType="{x:Type GridSplitter}">
  <Border BorderBrush="{TemplateBinding BorderBrush}"
          BorderThickness="{TemplateBinding BorderThickness}"
          Background="{TemplateBinding Background}">
    <DockPanel>
      <Button DockPanel.Dock="Left" Content="{StaticResource UpArrow}" Click="OnSplitterUpButton" />
      <Button DockPanel.Dock="Right" Content="{StaticResource DownArrow}" Click="OnSplitterDownButton" />
    </DockPanel>
  </Border>
</ControlTemplate>

...

<GridSplitter Template="{StaticResource SplitterWithButtons}" ... />
private void OnSplitterUpButton(object sender, RoutedEventArgs e)
{
  var splitter = ((Button)sender).TemplatedParent as GridSplitter;
  ...
}