2

在 WPF 应用程序中, aTabControl中有一个TabItem带有一个的元素Label。我想在这个事件上触发事件MouseClickTab但是TabControl事件MouseLeftButtonDown

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

仅在单击标签时触发。这不是我想要的。

我怎么能在 上触发事件,MouseClickTab不是它的内容?

4

6 回答 6

3

你想达到什么目的?当用户移动到选项卡时,您似乎正在尝试捕获,如果是这样,您可以挂钩不同的事件SelectionChanged

:-)

于 2009-12-30T15:55:27.360 回答
3

我不想要 selectionchanged 事件,因为这会涉及到切换。所以我想要一个事件直接在点击的标签上。

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

所以我用了MouseLeftButtonUpor MouseUp

于 2012-02-06T21:42:00.510 回答
1

对于真正想要使用 MouseLeftButtonDown 事件的人,您可以使用“ MouseUp ”事件来代替。=)

于 2013-08-21T21:00:51.673 回答
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>
于 2009-12-30T16:08:44.103 回答
0

你需要活动Selector.Selected

于 2010-03-29T19:16:22.370 回答
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;

    (...) 
 }
于 2014-05-05T09:48:26.773 回答