How to Stretch WPF Tab Item Headers to Parent Control Width

后端 未结 11 1959
花落未央
花落未央 2020-11-29 23:17

Is there a way in XAML to cause the tab item headers to stretch across the width of the tab control?

For example, I have three tabs: red, blue and green. If I have a

11条回答
  •  长情又很酷
    2020-11-29 23:45

    I have solved this problem by creating a special converter:

        public class TabItemWidthAdjustmentConverter : IValueConverter
        {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            Double lTabControlWidth = value is Double ? (Double)value : 50; // 50 just to see something, in case of error
            Int32 lTabsCount = (parameter != null && parameter is String) ? Int32.Parse((String)parameter) : 1;
            return lTabControlWidth / lTabsCount;
        }
    
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
        }
    

    And I calculate the value of one tab item in the Tag element of the TabControl, to avoid calculating it for each tab separately. Here is the sample code (Note that In my case I needed a horizontal ScrollViewer, because I have multiple tab items, and with a minimum width):

    
                
                    
                        
                            
                                
                            
                            
                        
                    
                
                
                    
                        
                    
                
                
                    
                        
                    
                
                
                
    

    I can say that this works like a charm in my case :) Hope someone will find it useful!

    P.S. I did not need/want any style in my case.

提交回复
热议问题