2009-12-30 90 views
2

TabControl内部的WPF应用程序中,有一个TabItem元素,其中一个Label。我想火这个TabControlTabMouseClick的事件,但事件MouseLeftButtonDown:只有WPF TabItem元素MouseClick事件

<TabItem Header="Header1" MouseLeftButtonDown="TabItem_MouseLeftButtonDown" > 
     <Label Height="28" Name="AdderLbl" Width="120" Background="Azure" >Label</Label> 
</TabItem> 

火上单击该标签。这不是我想要的。

我怎么能通过TabMouseClick上触发事件,而不是其内容?

+1

你想达到什么目的?它看起来像你试图陷入当用户移动到标签,如果这样你可以勾选一个不同的事件'SelectionChanged' – 2009-12-30 13:04:56

+1

是的,这就是我想要的。它的工作原理。谢谢。我会选择你接受的答案。 – rem 2009-12-30 13:20:02

回答

3

你想达到什么目的?它看起来像你想陷阱当用户移动到标签上,如果是的话你可以连接不同的事件SelectionChanged

:-)

0

虽然处理SelectionChanged事件是处理标签的变化更好的方法,这里是你的问题的一个可能的解决方案。我不建议这样做你的情况,但它说明了一种方法,可以在其他情况下

<TabControl> 
     <TabItem> 
      <TabItem.Header> 
       <Button Click="Button_Click"> 
        <Button.Template> 
         <ControlTemplate> 
          <Label>Header1</Label> 
         </ControlTemplate> 
        </Button.Template> 
       </Button> 
      </TabItem.Header> 

      <Label Height="28" Name="AdderLbl" Width="120" Background="Azure" >Label</Label> 
     </TabItem> 
    </TabControl> 
0

您需要的情况下Selector.Selected

3

我不想SelectionChanged事件,因为这会涉及到一个开关是有用的。所以我想直接点击标签上的事件。

虽然我认为一个MouseDown事件是我一直在寻找......在用断点连接各种鼠标事件之后;我发现MouseUp事件对我有用。

所以我用MouseLeftButtonUpMouseUp

1

对于真正想要使用类似MouseLeftButtonDown事件的人,可以使用“MouseUp”事件。 =)

0
<TabControl x:Name ="TabControls" Dock="Top" DockWidth="500" DockHeight="500"  TabItemShape="Rounded"> 
<TabControl> 

TabControls.SelectionChanged += SelectionChanged; 

private void SelectionChanged(object sender, SelectionChangedEventArgs selectionChangedEventArgs) { 

    var itemTab = (TabItem) TabControls.SelectedItem; 

    (...) 
}