2009-12-30 3 views
2

В приложении WPF внутри TabControl есть элемент TabItem с номером Label. Я хочу, чтобы запустить событие на MouseClick на Tab этого TabControl, но событие MouseLeftButtonDown: толькоWPF TabItem Element MouseClick Event

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

пожаров по щелчку по этикетке. Я не хочу этого.

Как могу активировать мероприятие на MouseClick над Tab, не используя его содержание?

+1

Что вы пытаетесь достичь? Похоже, вы пытаетесь поймать ловушку, когда пользователь переместится на вкладку, если так вы можете подключить другое событие 'SelectionChanged' –

+1

Да, это то, что я хотел. И это работает. Благодарю. Я бы выбрал ваш ответ, как принято. – rem

ответ

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 работали для меня.

Поэтому я использовал MouseLeftButtonUp или MouseUp.

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; 

    (...) 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^