2017-04-22 18 views

回答

1

你只需要定义一个预览鼠标按下处理程序的工具栏...

 <ToolBar Name="toolBar1" ToolBarTray.IsLocked="False" PreviewMouseDown="toolBar1_PreviewMouseDown" > 
      <Menu ToolBar.OverflowMode="AsNeeded"> 
       <MenuItem Header="File" /> 
       <MenuItem Header="New" /> 
      </Menu> 
     </ToolBar> 

然后在处理程序中,执行命中测试,以确定是否是在拇指是控制它实现握...

private void toolBar1_PreviewMouseDown(object sender, MouseButtonEventArgs e) 
    { 
     if (e.ChangedButton == MouseButton.Left) 
     { 
      Point p = e.GetPosition(toolBar1); 
      IInputElement ie = toolBar1.InputHitTest(p); 
      Thumb t = GetParent<Thumb>(ie as DependencyObject); 
      if(t != null) 
      { 
       // we have clicked on the grip... 
      } 

     } 

    } 
    private T GetParent<T>(DependencyObject d) where T : class 
    { 
     while (d != null && !(d is T)) 
     { 
      d = VisualTreeHelper.GetParent(d); 
     } 
     return d as T; 

    } 
+0

由于它的工作:) – Ahmad

+0

u能请告诉我依赖的对象是在工具栏只是握? – Ahmad

+0

依赖对象是MVVM的一个非常基本的元素。 Grip是许多其他许多事物的依赖对象。 – AQuirky

相关问题