/
githubmirror
/
Files
Обзор
Документация
Войти
/
githubmirror
/
Files
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Files.App.Controls/ThemedIcon/ThemedIcon.xaml
222 строки
9 KB
Yair
Code Quality: Updated license header
31 дек 2024, 05:03
31 дек 2024, 05:03
8436c6d
Код
Авторство
О чём код?
<!-- 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" xmlns:local="using:Files.App.Controls"> <Style BasedOn="{StaticResource DefaultThemedIconStyle}" TargetType="local:ThemedIcon" /> <Style x:Key="DefaultThemedIconStyle" TargetType="local:ThemedIcon"> <Setter Property="IsTabStop" Value="False" /> <Setter Property="IconSize" Value="16" /> <Setter Property="OutlineIconData" Value="M8 2C4.68629 2 2 4.68629 2 8C2 11.3137 4.68629 14 8 14C11.3137 14 14 11.3137 14 8C14 4.68629 11.3137 2 8 2ZM1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8Z" /> <Setter Property="FilledIconData" Value="M8 1C4.13401 1 1 4.13401 1 8C1 11.866 4.13401 15 8 15C11.866 15 15 11.866 15 8C15 4.13401 11.866 1 8 1Z" /> <Setter Property="IsHighContrast" Value="{ThemeResource ThemedIconHighContrast}" /> <Setter Property="Layers"> <Setter.Value> <local:ThemedIconLayers> <local:ThemedIconLayer LayerType="Base" Opacity="1.0" PathData="" /> <local:ThemedIconLayer LayerType="Alt" Opacity="1.0" PathData="" /> </local:ThemedIconLayers> </Setter.Value> </Setter> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="local:ThemedIcon"> <Grid x:Name="ControlRoot" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" HorizontalAlignment="Center" VerticalAlignment="Center"> <!-- Filled --> <Viewbox x:Name="PART_FilledIconViewBox" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" Stretch="UniformToFill" UseLayoutRounding="False"> <Path x:Name="PART_FilledPath" Width="{TemplateBinding IconSize}" Height="{TemplateBinding IconSize}" Fill="{ThemeResource ThemedIconAccentBrush}" /> </Viewbox> <!-- Outline --> <Viewbox x:Name="PART_OutlineIconViewBox" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" Stretch="UniformToFill" UseLayoutRounding="False"> <Path x:Name="PART_OutlinePath" Width="{TemplateBinding IconSize}" Height="{TemplateBinding IconSize}" Fill="{ThemeResource ThemedIconBaseBrush}" /> </Viewbox> <!-- Layered (Rendered From Top to Bottom in The Visual Tree Order) --> <Viewbox x:Name="PART_LayeredIconViewBox" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" Stretch="UniformToFill" UseLayoutRounding="False"> <Canvas x:Name="PART_LayerCanvas" Width="{TemplateBinding IconSize}" Height="{TemplateBinding IconSize}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" UseLayoutRounding="False" /> </Viewbox> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="IconTypeStates"> <VisualState x:Name="Outline"> <VisualState.Setters> <Setter Target="PART_OutlineIconViewBox.Visibility" Value="Visible" /> <Setter Target="PART_FilledIconViewBox.Visibility" Value="Collapsed" /> <Setter Target="PART_LayeredIconViewBox.Visibility" Value="Collapsed" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Filled"> <VisualState.Setters> <Setter Target="PART_OutlineIconViewBox.Visibility" Value="Collapsed" /> <Setter Target="PART_FilledIconViewBox.Visibility" Value="Visible" /> <Setter Target="PART_LayeredIconViewBox.Visibility" Value="Collapsed" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Layered"> <VisualState.Setters> <Setter Target="PART_OutlineIconViewBox.Visibility" Value="Collapsed" /> <Setter Target="PART_FilledIconViewBox.Visibility" Value="Collapsed" /> <Setter Target="PART_LayeredIconViewBox.Visibility" Value="Visible" /> </VisualState.Setters> </VisualState> </VisualStateGroup> <VisualStateGroup x:Name="IconColorStates"> <VisualState x:Name="Normal"> <VisualState.Setters> <Setter Target="PART_OutlinePath.Fill" Value="{ThemeResource ThemedIconBaseBrush}" /> <Setter Target="PART_FilledPath.Fill" Value="{ThemeResource ThemedIconAccentBrush}" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Critical"> <VisualState.Setters> <Setter Target="PART_OutlinePath.Fill" Value="{ThemeResource ThemedIconCriticalBrush}" /> <Setter Target="PART_FilledPath.Fill" Value="{ThemeResource ThemedIconCriticalBrush}" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Caution"> <VisualState.Setters> <Setter Target="PART_OutlinePath.Fill" Value="{ThemeResource ThemedIconCautionBrush}" /> <Setter Target="PART_FilledPath.Fill" Value="{ThemeResource ThemedIconCautionBrush}" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Success"> <VisualState.Setters> <Setter Target="PART_OutlinePath.Fill" Value="{ThemeResource ThemedIconSuccessBrush}" /> <Setter Target="PART_FilledPath.Fill" Value="{ThemeResource ThemedIconSuccessBrush}" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Neutral"> <VisualState.Setters> <Setter Target="PART_OutlinePath.Fill" Value="{ThemeResource ThemedIconNeutralBrush}" /> <Setter Target="PART_FilledPath.Fill" Value="{ThemeResource ThemedIconNeutralBrush}" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Accent"> <VisualState.Setters> <Setter Target="PART_OutlinePath.Fill" Value="{ThemeResource ThemedIconAccentBrush}" /> <Setter Target="PART_FilledPath.Fill" Value="{ThemeResource ThemedIconAccentBrush}" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Custom"> <VisualState.Setters> <Setter Target="PART_OutlinePath.Fill" Value="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=Color}" /> <Setter Target="PART_FilledPath.Fill" Value="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=Color}" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Toggle"> <VisualState.Setters> <Setter Target="PART_OutlinePath.Fill" Value="{ThemeResource ThemedIconAccentContrastBrush}" /> <Setter Target="PART_FilledPath.Fill" Value="{ThemeResource ThemedIconAccentContrastBrush}" /> </VisualState.Setters> </VisualState> <VisualState x:Name="DisabledColor"> <VisualState.Setters> <Setter Target="PART_OutlinePath.Fill" Value="{ThemeResource ThemedIconDisabledBrush}" /> <Setter Target="PART_FilledPath.Fill" Value="{ThemeResource ThemedIconDisabledBrush}" /> </VisualState.Setters> </VisualState> <VisualState x:Name="DisabledToggleColor"> <VisualState.Setters> <Setter Target="PART_OutlinePath.Fill" Value="{ThemeResource ThemedIconDisabledBrush}" /> <Setter Target="PART_FilledPath.Fill" Value="{ThemeResource ThemedIconDisabledToggleBrush}" /> </VisualState.Setters> </VisualState> </VisualStateGroup> <VisualStateGroup x:Name="EnabledStates"> <VisualState x:Name="Enabled"> <VisualState.Setters> <Setter Target="PART_LayerCanvas.Visibility" Value="Visible" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Disabled"> <VisualState.Setters> <Setter Target="PART_LayerCanvas.Visibility" Value="Collapsed" /> </VisualState.Setters> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> <!-- Empty --> <Style x:Key="App.ThemedIcons.Empty" BasedOn="{StaticResource DefaultThemedIconStyle}" TargetType="local:ThemedIcon"> <Setter Property="IconSize" Value="16" /> <Setter Property="OutlineIconData" Value="" /> <Setter Property="FilledIconData" Value="" /> <Setter Property="Layers"> <Setter.Value> <local:ThemedIconLayers> <!-- Place lower layers first in the list --> <local:ThemedIconLayer LayerType="Alt" PathData="" /> <local:ThemedIconLayer LayerType="Base" PathData="" /> <local:ThemedIconLayer LayerType="Accent" PathData="" /> <local:ThemedIconLayer LayerType="AccentContrast" PathData="" /> </local:ThemedIconLayers> </Setter.Value> </Setter> </Style> </ResourceDictionary>