diff --git a/src/MainDemo.Wpf/Domain/TabsViewModel.cs b/src/MainDemo.Wpf/Domain/TabsViewModel.cs index 08c32cc99b..26b1ad234a 100644 --- a/src/MainDemo.Wpf/Domain/TabsViewModel.cs +++ b/src/MainDemo.Wpf/Domain/TabsViewModel.cs @@ -4,10 +4,10 @@ namespace MaterialDesignDemo.Domain; -internal class TabsViewModel : ViewModelBase +internal partial class TabsViewModel : ObservableObject { public ObservableCollection CustomTabs { get; } - + public List LongList { get; } public CustomTab? SelectedTab { get; set; } public string? VeryLongText { get; set; } = @" @@ -47,6 +47,8 @@ public TabsViewModel() CustomContent = "Custom content 3", }, }; + + LongList = Enumerable.Range(1, 20).ToList(); } } diff --git a/src/MainDemo.Wpf/Tabs.xaml b/src/MainDemo.Wpf/Tabs.xaml index 60252e2997..b575c717ae 100644 --- a/src/MainDemo.Wpf/Tabs.xaml +++ b/src/MainDemo.Wpf/Tabs.xaml @@ -755,5 +755,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/MaterialDesignThemes.Wpf/TabAssist.cs b/src/MaterialDesignThemes.Wpf/TabAssist.cs index 1a2b3e7058..83f25c6f1b 100644 --- a/src/MaterialDesignThemes.Wpf/TabAssist.cs +++ b/src/MaterialDesignThemes.Wpf/TabAssist.cs @@ -1,5 +1,10 @@ namespace MaterialDesignThemes.Wpf; +public enum TabControlHeaderBehavior +{ + Scrolling, + Wrapping +} public static class TabAssist { public static readonly DependencyProperty HasFilledTabProperty = DependencyProperty.RegisterAttached( @@ -54,4 +59,14 @@ public static void SetTabHeaderCursor(DependencyObject obj, Cursor value) public static readonly DependencyProperty TabHeaderCursorProperty = DependencyProperty.RegisterAttached("TabHeaderCursor", typeof(Cursor), typeof(TabAssist), new PropertyMetadata(Cursors.Hand)); + + public static TabControlHeaderBehavior GetHeaderBehavior(DependencyObject obj) + => (TabControlHeaderBehavior)obj.GetValue(HeaderBehaviorProperty); + + public static void SetHeaderBehavior(DependencyObject obj, TabControlHeaderBehavior value) + => obj.SetValue(HeaderBehaviorProperty, value); + + public static readonly DependencyProperty HeaderBehaviorProperty = + DependencyProperty.RegisterAttached("HeaderBehavior", typeof(TabControlHeaderBehavior), typeof(TabAssist), + new PropertyMetadata(TabControlHeaderBehavior.Scrolling)); } diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TabControl.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TabControl.xaml index d6279585d8..e094e337cb 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TabControl.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TabControl.xaml @@ -21,157 +21,221 @@ -