/
githubmirror
/
Files
Обзор
Документация
Войти
/
githubmirror
/
Files
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Files.App/Styles/ToolbarButtonStyle.xaml
371 строка
22 KB
Yair
Code Quality: Fixed toolbar button width
16 апр 2026, 23:53
16 апр 2026, 23:53
e5fd0d0
Код
Авторство
О чём код?
<!-- Copyright (c) Files Community. Licensed under the MIT License. --> <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Style x:Key="ToolBarAppBarButtonFlyoutStyle" BasedOn="{StaticResource DefaultAppBarButtonStyle}" TargetType="AppBarButton"> <Setter Property="Background" Value="{ThemeResource AppBarButtonBackground}" /> <Setter Property="Foreground" Value="{ThemeResource AppBarButtonForeground}" /> <Setter Property="BorderBrush" Value="{ThemeResource AppBarButtonBorderBrush}" /> <Setter Property="HorizontalAlignment" Value="Stretch" /> <Setter Property="VerticalAlignment" Value="Top" /> <Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}" /> <Setter Property="FontWeight" Value="Normal" /> <Setter Property="Width" Value="68" /> <Setter Property="UseSystemFocusVisuals" Value="{StaticResource UseSystemFocusVisuals}" /> <Setter Property="FocusVisualMargin" Value="-3" /> <Setter Property="AllowFocusOnInteraction" Value="False" /> <Setter Property="CornerRadius" Value="{ThemeResource ControlCornerRadius}" /> <Setter Property="KeyboardAcceleratorPlacementMode" Value="Hidden" /> <Setter Property="BackgroundSizing" Value="InnerBorderEdge" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="AppBarButton"> <Grid x:Name="Root" MinWidth="{TemplateBinding MinWidth}" MaxWidth="{TemplateBinding MaxWidth}" Background="Transparent"> <Border x:Name="AppBarButtonInnerBorder" Margin="{ThemeResource AppBarButtonInnerBorderMargin}" Background="{TemplateBinding Background}" BackgroundSizing="{TemplateBinding BackgroundSizing}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Control.IsTemplateFocusTarget="True" CornerRadius="{TemplateBinding CornerRadius}"> <Border.BackgroundTransition> <BrushTransition Duration="0:0:0.083" /> </Border.BackgroundTransition> </Border> <Grid x:Name="ContentRoot" MinHeight="{ThemeResource AppBarThemeMinHeight}"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Viewbox x:Name="ContentViewbox" Height="{ThemeResource AppBarButtonContentHeight}" Margin="{ThemeResource AppBarButtonContentViewboxCollapsedMargin}" HorizontalAlignment="Stretch" AutomationProperties.AccessibilityView="Raw"> <ContentPresenter x:Name="Content" Content="{TemplateBinding Content}" Foreground="{TemplateBinding Foreground}" /> </Viewbox> <TextBlock x:Name="TextLabel" Grid.Row="1" Margin="{ThemeResource AppBarButtonTextLabelMargin}" AutomationProperties.AccessibilityView="Raw" FontFamily="{TemplateBinding FontFamily}" FontSize="12" Foreground="{TemplateBinding Foreground}" Text="{TemplateBinding Label}" TextAlignment="Center" TextWrapping="Wrap" /> <TextBlock x:Name="OverflowTextLabel" Margin="12,0,12,0" Padding="{ThemeResource AppBarButtonOverflowTextLabelPadding}" HorizontalAlignment="Stretch" VerticalAlignment="Center" AutomationProperties.AccessibilityView="Raw" FontFamily="{TemplateBinding FontFamily}" FontSize="{ThemeResource ControlContentThemeFontSize}" Foreground="{TemplateBinding Foreground}" Text="{TemplateBinding Label}" TextAlignment="Left" TextTrimming="Clip" TextWrapping="NoWrap" Visibility="Collapsed" /> <TextBlock x:Name="KeyboardAcceleratorTextLabel" Grid.Column="1" MinWidth="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.KeyboardAcceleratorTextMinWidth}" Margin="24,0,12,0" HorizontalAlignment="Right" VerticalAlignment="Center" AutomationProperties.AccessibilityView="Raw" Foreground="{ThemeResource AppBarButtonKeyboardAcceleratorTextForeground}" Style="{ThemeResource CaptionTextBlockStyle}" Text="{TemplateBinding KeyboardAcceleratorTextOverride}" Visibility="Collapsed" /> <Grid x:Name="SubItemChevronPanel" Grid.Column="2"> <FontIcon x:Name="SubItemChevron" VerticalAlignment="Top" AutomationProperties.AccessibilityView="Raw" FontFamily="{ThemeResource SymbolThemeFontFamily}" FontSize="{ThemeResource AppBarButtonSubItemChevronFontSize}" Foreground="{ThemeResource AppBarButtonSubItemChevronForeground}" Glyph="" MirroredWhenRightToLeft="True" Visibility="Collapsed" /> <FontIcon x:Name="OverflowSubItemChevron" Margin="{ThemeResource AppBarButtonSecondarySubItemChevronMargin}" VerticalAlignment="Center" AutomationProperties.AccessibilityView="Raw" FontFamily="{ThemeResource SymbolThemeFontFamily}" FontSize="{ThemeResource AppBarButtonSecondarySubItemChevronFontSize}" Foreground="{ThemeResource AppBarButtonSubItemChevronForeground}" Glyph="{ThemeResource AppBarButtonOverflowFlyoutGlyph}" MirroredWhenRightToLeft="True" Visibility="Collapsed" /> </Grid> </Grid> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="ApplicationViewStates"> <VisualState x:Name="FullSize"> <VisualState.Setters> <Setter Target="SubItemChevron.Visibility" Value="Visible" /> <Setter Target="OverflowSubItemChevron.Visibility" Value="Collapsed" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Compact"> <VisualState.Setters> <Setter Target="SubItemChevron.Visibility" Value="Visible" /> <Setter Target="OverflowSubItemChevron.Visibility" Value="Collapsed" /> <Setter Target="AppBarButtonInnerBorder.Margin" Value="{StaticResource AppBarButtonInnerBorderCompactMargin}" /> </VisualState.Setters> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="TextLabel" Storyboard.TargetProperty="Visibility"> <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed" /> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:Name="LabelOnRight"> <VisualState.Setters> <Setter Target="SubItemChevron.Visibility" Value="Visible" /> <Setter Target="OverflowSubItemChevron.Visibility" Value="Collapsed" /> </VisualState.Setters> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentViewbox" Storyboard.TargetProperty="Margin"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource AppBarButtonContentViewboxMargin}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="MinHeight"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource AppBarThemeCompactHeight}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="TextLabel" Storyboard.TargetProperty="(Grid.Row)"> <DiscreteObjectKeyFrame KeyTime="0" Value="0" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="TextLabel" Storyboard.TargetProperty="(Grid.Column)"> <DiscreteObjectKeyFrame KeyTime="0" Value="1" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="TextLabel" Storyboard.TargetProperty="TextAlignment"> <DiscreteObjectKeyFrame KeyTime="0" Value="Left" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="TextLabel" Storyboard.TargetProperty="Margin"> <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource AppBarButtonTextLabelOnRightMargin}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="SubItemChevron" Storyboard.TargetProperty="Margin"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource AppBarButtonSubItemChevronLabelOnRightMargin}" /> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:Name="LabelCollapsed"> <VisualState.Setters> <Setter Target="SubItemChevron.Visibility" Value="Visible" /> <Setter Target="OverflowSubItemChevron.Visibility" Value="Collapsed" /> </VisualState.Setters> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="MinHeight"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource AppBarThemeCompactHeight}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="Width"> <DiscreteObjectKeyFrame KeyTime="0" Value="40" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="TextLabel" Storyboard.TargetProperty="Visibility"> <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="SubItemChevron" Storyboard.TargetProperty="Margin"> <DiscreteObjectKeyFrame KeyTime="0" Value="4,20,4,0" /> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:Name="Overflow"> <VisualState.Setters> <Setter Target="ContentRoot.MinHeight" Value="0" /> <Setter Target="AppBarButtonInnerBorder.Margin" Value="{StaticResource AppBarButtonInnerBorderOverflowMargin}" /> <Setter Target="ContentViewbox.Visibility" Value="Collapsed" /> <Setter Target="TextLabel.Visibility" Value="Collapsed" /> <Setter Target="OverflowTextLabel.Visibility" Value="Visible" /> <Setter Target="SubItemChevron.Visibility" Value="Collapsed" /> <Setter Target="OverflowSubItemChevron.Visibility" Value="Visible" /> </VisualState.Setters> </VisualState> <VisualState x:Name="OverflowWithToggleButtons"> <VisualState.Setters> <Setter Target="ContentRoot.MinHeight" Value="0" /> <Setter Target="AppBarButtonInnerBorder.Margin" Value="{StaticResource AppBarButtonInnerBorderOverflowMargin}" /> <Setter Target="ContentViewbox.Visibility" Value="Collapsed" /> <Setter Target="TextLabel.Visibility" Value="Collapsed" /> <Setter Target="OverflowTextLabel.Visibility" Value="Visible" /> <Setter Target="OverflowTextLabel.Margin" Value="38,0,12,0" /> <Setter Target="SubItemChevron.Visibility" Value="Collapsed" /> <Setter Target="OverflowSubItemChevron.Visibility" Value="Visible" /> </VisualState.Setters> </VisualState> <VisualState x:Name="OverflowWithMenuIcons"> <VisualState.Setters> <Setter Target="ContentRoot.MinHeight" Value="0" /> <Setter Target="AppBarButtonInnerBorder.Margin" Value="{StaticResource AppBarButtonInnerBorderOverflowMargin}" /> <Setter Target="ContentViewbox.HorizontalAlignment" Value="Left" /> <Setter Target="ContentViewbox.VerticalAlignment" Value="Center" /> <Setter Target="ContentViewbox.Width" Value="16" /> <Setter Target="ContentViewbox.Height" Value="16" /> <Setter Target="ContentViewbox.Margin" Value="12,0,12,0" /> <Setter Target="TextLabel.Visibility" Value="Collapsed" /> <Setter Target="OverflowTextLabel.Visibility" Value="Visible" /> <Setter Target="OverflowTextLabel.Margin" Value="38,0,12,0" /> <Setter Target="SubItemChevron.Visibility" Value="Collapsed" /> <Setter Target="OverflowSubItemChevron.Visibility" Value="Visible" /> </VisualState.Setters> </VisualState> <VisualState x:Name="OverflowWithToggleButtonsAndMenuIcons"> <VisualState.Setters> <Setter Target="ContentRoot.MinHeight" Value="0" /> <Setter Target="AppBarButtonInnerBorder.Margin" Value="{StaticResource AppBarButtonInnerBorderOverflowMargin}" /> <Setter Target="ContentViewbox.HorizontalAlignment" Value="Left" /> <Setter Target="ContentViewbox.VerticalAlignment" Value="Center" /> <Setter Target="ContentViewbox.Width" Value="16" /> <Setter Target="ContentViewbox.Height" Value="16" /> <Setter Target="ContentViewbox.Margin" Value="38,0,12,0" /> <Setter Target="TextLabel.Visibility" Value="Collapsed" /> <Setter Target="OverflowTextLabel.Visibility" Value="Visible" /> <Setter Target="OverflowTextLabel.Margin" Value="76,0,12,0" /> <Setter Target="SubItemChevron.Visibility" Value="Collapsed" /> <Setter Target="OverflowSubItemChevron.Visibility" Value="Visible" /> </VisualState.Setters> </VisualState> </VisualStateGroup> <VisualStateGroup x:Name="CommonStates"> <VisualState x:Name="Normal" /> <VisualState x:Name="PointerOver"> <VisualState.Setters> <Setter Target="AppBarButtonInnerBorder.Background" Value="{ThemeResource AppBarButtonBackgroundPointerOver}" /> <Setter Target="AppBarButtonInnerBorder.BorderBrush" Value="{ThemeResource AppBarButtonBorderBrushPointerOver}" /> <Setter Target="Content.Foreground" Value="{ThemeResource AppBarButtonForegroundPointerOver}" /> <Setter Target="TextLabel.Foreground" Value="{ThemeResource AppBarButtonForegroundPointerOver}" /> <Setter Target="OverflowTextLabel.Foreground" Value="{ThemeResource AppBarButtonForegroundPointerOver}" /> <Setter Target="SubItemChevron.Foreground" Value="{ThemeResource AppBarButtonSubItemChevronForegroundPointerOver}" /> <Setter Target="KeyboardAcceleratorTextLabel.Foreground" Value="{ThemeResource AppBarButtonKeyboardAcceleratorTextForegroundPointerOver}" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Pressed"> <VisualState.Setters> <Setter Target="AppBarButtonInnerBorder.Background" Value="{ThemeResource AppBarButtonBackgroundPressed}" /> <Setter Target="AppBarButtonInnerBorder.BorderBrush" Value="{ThemeResource AppBarButtonBorderBrushPressed}" /> <Setter Target="Content.Foreground" Value="{ThemeResource AppBarButtonForegroundPressed}" /> <Setter Target="TextLabel.Foreground" Value="{ThemeResource AppBarButtonForegroundPressed}" /> <Setter Target="OverflowTextLabel.Foreground" Value="{ThemeResource AppBarButtonForegroundPressed}" /> <Setter Target="SubItemChevron.Foreground" Value="{ThemeResource AppBarButtonSubItemChevronForegroundPressed}" /> <Setter Target="KeyboardAcceleratorTextLabel.Foreground" Value="{ThemeResource AppBarButtonKeyboardAcceleratorTextForegroundPressed}" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Disabled"> <VisualState.Setters> <Setter Target="AppBarButtonInnerBorder.Background" Value="{ThemeResource AppBarButtonBackgroundDisabled}" /> <Setter Target="AppBarButtonInnerBorder.BorderBrush" Value="{ThemeResource AppBarButtonBorderBrushDisabled}" /> <Setter Target="Content.Foreground" Value="{ThemeResource AppBarButtonForegroundDisabled}" /> <Setter Target="TextLabel.Foreground" Value="{ThemeResource AppBarButtonForegroundDisabled}" /> <Setter Target="OverflowTextLabel.Foreground" Value="{ThemeResource AppBarButtonForegroundDisabled}" /> <Setter Target="SubItemChevron.Foreground" Value="{ThemeResource AppBarButtonSubItemChevronForegroundDisabled}" /> <Setter Target="OverflowSubItemChevron.Foreground" Value="{ThemeResource AppBarButtonSubItemChevronForegroundDisabled}" /> <Setter Target="KeyboardAcceleratorTextLabel.Foreground" Value="{ThemeResource AppBarButtonKeyboardAcceleratorTextForegroundDisabled}" /> </VisualState.Setters> </VisualState> <VisualState x:Name="OverflowNormal"> <VisualState.Setters> <Setter Target="SubItemChevron.Visibility" Value="Collapsed" /> <Setter Target="OverflowSubItemChevron.Visibility" Value="Visible" /> </VisualState.Setters> </VisualState> <VisualState x:Name="OverflowPointerOver"> <VisualState.Setters> <Setter Target="AppBarButtonInnerBorder.Background" Value="{ThemeResource AppBarButtonBackgroundPointerOver}" /> <Setter Target="AppBarButtonInnerBorder.BorderBrush" Value="{ThemeResource AppBarButtonBorderBrushPointerOver}" /> <Setter Target="Content.Foreground" Value="{ThemeResource AppBarButtonForegroundPointerOver}" /> <Setter Target="TextLabel.Foreground" Value="{ThemeResource AppBarButtonForegroundPointerOver}" /> <Setter Target="OverflowTextLabel.Foreground" Value="{ThemeResource AppBarButtonForegroundPointerOver}" /> <Setter Target="KeyboardAcceleratorTextLabel.Foreground" Value="{ThemeResource AppBarButtonKeyboardAcceleratorTextForegroundPointerOver}" /> <Setter Target="SubItemChevron.Foreground" Value="{ThemeResource AppBarButtonSubItemChevronForegroundPointerOver}" /> <Setter Target="SubItemChevron.Visibility" Value="Collapsed" /> <Setter Target="OverflowSubItemChevron.Visibility" Value="Visible" /> </VisualState.Setters> </VisualState> <VisualState x:Name="OverflowPressed"> <VisualState.Setters> <Setter Target="AppBarButtonInnerBorder.Background" Value="{ThemeResource AppBarButtonBackgroundPressed}" /> <Setter Target="AppBarButtonInnerBorder.BorderBrush" Value="{ThemeResource AppBarButtonBorderBrushPressed}" /> <Setter Target="Content.Foreground" Value="{ThemeResource AppBarButtonForegroundPressed}" /> <Setter Target="TextLabel.Foreground" Value="{ThemeResource AppBarButtonForegroundPressed}" /> <Setter Target="OverflowTextLabel.Foreground" Value="{ThemeResource AppBarButtonForegroundPressed}" /> <Setter Target="KeyboardAcceleratorTextLabel.Foreground" Value="{ThemeResource AppBarButtonKeyboardAcceleratorTextForegroundPressed}" /> <Setter Target="SubItemChevron.Foreground" Value="{ThemeResource AppBarButtonSubItemChevronForegroundPressed}" /> <Setter Target="SubItemChevron.Visibility" Value="Collapsed" /> <Setter Target="OverflowSubItemChevron.Visibility" Value="Visible" /> </VisualState.Setters> </VisualState> <VisualState x:Name="OverflowSubMenuOpened"> <VisualState.Setters> <Setter Target="AppBarButtonInnerBorder.Background" Value="{ThemeResource AppBarButtonBackgroundSubMenuOpened}" /> <Setter Target="AppBarButtonInnerBorder.BorderBrush" Value="{ThemeResource AppBarButtonBorderBrushSubMenuOpened}" /> <Setter Target="Content.Foreground" Value="{ThemeResource AppBarButtonForegroundSubMenuOpened}" /> <Setter Target="TextLabel.Foreground" Value="{ThemeResource AppBarButtonForegroundSubMenuOpened}" /> <Setter Target="OverflowTextLabel.Foreground" Value="{ThemeResource AppBarButtonForegroundSubMenuOpened}" /> <Setter Target="KeyboardAcceleratorTextLabel.Foreground" Value="{ThemeResource AppBarButtonKeyboardAcceleratorTextForegroundSubMenuOpened}" /> <Setter Target="SubItemChevron.Foreground" Value="{ThemeResource AppBarButtonSubItemChevronForegroundSubMenuOpened}" /> <Setter Target="SubItemChevron.Visibility" Value="Collapsed" /> <Setter Target="OverflowSubItemChevron.Visibility" Value="Visible" /> </VisualState.Setters> </VisualState> </VisualStateGroup> <VisualStateGroup x:Name="InputModeStates"> <VisualState x:Name="InputModeDefault" /> <VisualState x:Name="TouchInputMode"> <VisualState.Setters> <Setter Target="OverflowTextLabel.Padding" Value="{ThemeResource AppBarButtonOverflowTextTouchMargin}" /> </VisualState.Setters> </VisualState> <VisualState x:Name="GameControllerInputMode"> <VisualState.Setters> <Setter Target="OverflowTextLabel.Padding" Value="{ThemeResource AppBarButtonOverflowTextTouchMargin}" /> </VisualState.Setters> </VisualState> </VisualStateGroup> <VisualStateGroup x:Name="KeyboardAcceleratorTextVisibility"> <VisualState x:Name="KeyboardAcceleratorTextCollapsed" /> <VisualState x:Name="KeyboardAcceleratorTextVisible"> <VisualState.Setters> <Setter Target="KeyboardAcceleratorTextLabel.Visibility" Value="Visible" /> </VisualState.Setters> </VisualState> </VisualStateGroup> <VisualStateGroup x:Name="FlyoutStates"> <VisualState x:Name="NoFlyout"> <VisualState.Setters> <Setter Target="SubItemChevronPanel.Visibility" Value="Collapsed" /> </VisualState.Setters> </VisualState> <VisualState x:Name="HasFlyout"> <VisualState.Setters> <Setter Target="SubItemChevronPanel.Visibility" Value="Visible" /> </VisualState.Setters> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> </ResourceDictionary>