diff --git a/samples/ControlCatalog/Pages/TabControlPage.xaml b/samples/ControlCatalog/Pages/TabControlPage.xaml index 1faa74c1ce..abcad56e9b 100644 --- a/samples/ControlCatalog/Pages/TabControlPage.xaml +++ b/samples/ControlCatalog/Pages/TabControlPage.xaml @@ -29,7 +29,7 @@ DockPanel.Dock="Top" Classes="h2" Text="A tab control that displays a tab strip along with the content of the selected tab" - Margin="4"> + Margin="4"> - + This is the first page in the TabControl. - + This is the second page in the TabControl. - + You should not see this. diff --git a/src/Avalonia.Controls/TabItem.cs b/src/Avalonia.Controls/TabItem.cs index c0bb19dd1f..9bffacd921 100644 --- a/src/Avalonia.Controls/TabItem.cs +++ b/src/Avalonia.Controls/TabItem.cs @@ -4,6 +4,8 @@ using Avalonia.Automation.Peers; using Avalonia.Controls.Metadata; using Avalonia.Controls.Mixins; using Avalonia.Controls.Primitives; +using Avalonia.Input; +using Avalonia.Interactivity; namespace Avalonia.Controls { @@ -37,6 +39,7 @@ namespace Avalonia.Controls FocusableProperty.OverrideDefaultValue(typeof(TabItem), true); DataContextProperty.Changed.AddClassHandler((x, e) => x.UpdateHeader(e)); AutomationProperties.ControlTypeOverrideProperty.OverrideDefaultValue(AutomationControlType.TabItem); + AccessKeyHandler.AccessKeyPressedEvent.AddClassHandler((tabItem, args) => tabItem.TabItemActivated(args)); } /// @@ -91,5 +94,11 @@ namespace Avalonia.Controls } } } + + private void TabItemActivated(RoutedEventArgs args) + { + SetCurrentValue(IsSelectedProperty, true); + args.Handled = true; + } } } diff --git a/src/Avalonia.Themes.Fluent/Controls/TabItem.xaml b/src/Avalonia.Themes.Fluent/Controls/TabItem.xaml index ce3cecb0c0..085fc3165f 100644 --- a/src/Avalonia.Themes.Fluent/Controls/TabItem.xaml +++ b/src/Avalonia.Themes.Fluent/Controls/TabItem.xaml @@ -40,7 +40,9 @@ HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content="{TemplateBinding Header}" - ContentTemplate="{TemplateBinding HeaderTemplate}" /> + ContentTemplate="{TemplateBinding HeaderTemplate}" + RecognizesAccessKey="True" + /> + CornerRadius="{TemplateBinding CornerRadius}" + RecognizesAccessKey="True" + />