2010-06-11 48 views
0

我有一個垂直網格中的Gridsplitter,理想情況下希望在GridSplitter中看到兩個按鈕。向上按鈕會自動將分離器移動到最高位置,而最下面的按鈕會將其完全移動。但是,GridSplitter不能包含其他項目。有沒有想過在這個方面呢?我想製作一個面板,然後將它夾在兩個GridSplitters之間?如何讓GridSplitter在極端之間移動

回答

1

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}" ... /> 

內,您的事件處理程序,你可以找到這樣的GridSplitter:

private void OnSplitterUpButton(object sender, RoutedEventArgs e) 
{ 
    var splitter = ((Button)sender).TemplatedParent as GridSplitter; 
    ... 
}