如何仅使tabitem的标题响应鼠标事件 [英] How to make only the header of the tabitem respond to the mouse event
问题描述
到目前为止,我有我的xaml ...
< TabControl>
< TabItem Header =tab 1>
任何文本
< / TabItem>
< TabItem Header =tab 2>
< TextBox> blah< / TextBox>
< / TabItem>
< TabControl.Resources>
< Style TargetType =TabItem>
< EventSetter Event =MouseDoubleClickHandler =TabItemMouseDoubleClick/>
< / style>
< / TabControl>
...和我的事件处理程序...
void TabItemMouseDoubleClick(object sender,MouseButtonEventArgs e)
{}
现在,当双击标签项目标题事件触发时,当点击标签项目内容区域时它不会触发(这是我想要的),但是当我在TabItem中放置一个文本框时,双击文本框会触发事件。我试图只获取TabItem的头部来触发事件 - 任何想法?解析方案
对于其他人来说,最后xaml获取tabItems头只发送事件是...
< TabControl>
< TabItem Header =tab 1>
任何文本
< / TabItem>
< TabItem Header =tab 2>
< TextBox> blah< / TextBox>
< / TabItem>
< TabControl.Resources>
< Style TargetType =TabItem>
< Setter Property =HeaderTemplate>
< Setter.Value>
< DataTemplate>
<标签内容={绑定}>
< Label.Style>
< Style TargetType =标签>
< EventSetter Event =MouseDoubleClickHandler =TabItemMouseDoubleClick/>
< / style>
< / Label>
< / DataTemplate>
< / Setter>
< / style>
< / TabControl>
I'm trying to make only the header of the TabItem send an event.
So far I have my xaml...
<TabControl>
<TabItem Header="tab 1">
Any text
</TabItem>
<TabItem Header="tab 2">
<TextBox>blah</TextBox>
</TabItem>
<TabControl.Resources>
<Style TargetType="TabItem">
<EventSetter Event="MouseDoubleClick" Handler="TabItemMouseDoubleClick"/>
</Style>
</TabControl.Resources>
</TabControl>
...and my event handler...
void TabItemMouseDoubleClick(object sender, MouseButtonEventArgs e)
{}
Now, when double clicking the tab item header the event fires, when clicking the tab item content area it doesn't fire (which is what I want), but when I put a text box in the TabItem, the event fires upon double clicking the textbox. I'm trying to get only the header of the TabItem to fire the event - any ideas?
For others, the final xaml to get the tabItems header only sending the event is...
<TabControl>
<TabItem Header="tab 1">
Any text
</TabItem>
<TabItem Header="tab 2">
<TextBox>blah</TextBox>
</TabItem>
<TabControl.Resources>
<Style TargetType="TabItem">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<Label Content="{Binding}">
<Label.Style>
<Style TargetType="Label">
<EventSetter Event="MouseDoubleClick" Handler="TabItemMouseDoubleClick"/>
</Style>
</Label.Style>
</Label>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</TabControl.Resources>
</TabControl>
这篇关于如何仅使tabitem的标题响应鼠标事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!