Articles in this section
Category / Section

How to check whether the tab header is in pressed state in TabControlAdv

1 min read

Using HitTest method of VisualTreeHelper class, we can check whether the mouse cursor is in Header part of the TabControlExt or not. For instance, we have changed the state of the MainWindow, if the header area of the TabControlExt is clicked twice. The following code example illustrate the same,

 

Mainwindow.xaml:

<syncfusion:TabControlExt EnableLabelEdit="False" AllowDragDrop="False" x:Name="tabcontrolext" MouseDoubleClick="tabcontrolext_MouseDoubleClick">
            <syncfusion:TabItemExt Header="TabItem1"/>
            <syncfusion:TabItemExt Header="TabItem2"/>
            <syncfusion:TabItemExt Header="TabItem3"/>
            <syncfusion:TabItemExt Header="TabItem4"/>
            <syncfusion:TabItemExt Header="TabItem5"/>
        </syncfusion:TabControlExt>

 

Method to check whether the mouse cursor is in header area or not:

        private HitTestResult GetHeaderHitTestResult(MouseButtonEventArgs mouseargs)
        {
            HitTestResult testresult = null;
            if (tabpanel != null)
            {
                FrameworkElement borderElement = tabpanel.Template.FindName("PART_TabItems", tabpanel) as FrameworkElement;
                if (borderElement != null)
                {
                    testresult = VisualTreeHelper.HitTest(borderElement as Visual, mouseargs.GetPosition(this));
                    return testresult;
                }
            }
 
            return testresult;
        }

 

Mainwindow.cs:

       TabPanelAdv tabpanel = null;
        private void Tabcontrolext_Loaded(object sender, RoutedEventArgs e)
        {            
            tabpanel = tabcontrolext.Template.FindName("PART_TabPanel", tabcontrolext) as TabPanelAdv;            
        }
 
        private void tabcontrolext_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (GetHeaderHitTestResult(e) != null)
            {
                if (WindowState == WindowState.Normal)
                    WindowState = WindowState.Maximized;
                else
                    WindowState = WindowState.Normal;
            }
        }

 

Sample:

https://www.syncfusion.com/downloads/support/directtrac/general/ze/TabControlExt_HitTest_Sample-955247596.zip

 

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied