We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

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

Platform: WPF |
Control: TabControlExt |
.NET Framework: 4

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

 

2X faster development

The ultimate WPF UI toolkit to boost your development speed.
ADD COMMENT
You must log in to leave a comment

Please sign in to access our KB

This page will automatically be redirected to the sign-in page in 10 seconds.

Up arrow icon

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

Live Chat Icon For mobile