/
githubmirror
/
Files
Обзор
Документация
Войти
/
githubmirror
/
Files
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Files.App/Views/HomePage.xaml
557 строк
29 KB
yair100
Feature: Added right click context menu to the Home Page (#18233)
09 мар 2026, 08:04
Не верифицирован
09 мар 2026, 08:04
e713a35
Код
Авторство
О чём код?
<!-- Copyright (c) Files Community. Licensed under the MIT License. --> <Page x:Class="Files.App.Views.HomePage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:animatedvisuals="using:Microsoft.UI.Xaml.Controls.AnimatedVisuals" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:dataitems="using:Files.App.Data.Items" xmlns:helpers="using:Files.App.Helpers" xmlns:i="using:Microsoft.Xaml.Interactivity" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:uc="using:Files.App.UserControls" DataContext="{x:Bind ViewModel, Mode=OneWay}" mc:Ignorable="d"> <i:Interaction.Behaviors> <i:EventTriggerBehavior EventName="Loaded"> <i:InvokeCommandAction Command="{x:Bind ViewModel.ReloadWidgetsCommand, Mode=OneWay}" /> </i:EventTriggerBehavior> </i:Interaction.Behaviors> <UserControl.Resources> <!-- Custom Expander Style With Disabled Up/down Animations --> <Style BasedOn="{StaticResource NoUpDownAnimationExpanderStyle}" TargetType="Expander" /> <Thickness x:Key="ExpanderChevronMargin">0,0,0,0</Thickness> <x:Double x:Key="ExpanderChevronButtonSize">16</x:Double> <Thickness x:Key="ExpanderHeaderPadding">0,0,0,0</Thickness> <Thickness x:Key="ExpanderHeaderInnerMargin">16,0,16,0</Thickness> <Thickness x:Key="ExpanderHeaderInnerPadding">0,0,12,0</Thickness> <x:Double x:Key="ExpanderHeaderInnerHeight">32</x:Double> <Style x:Key="NoUpDownAnimationExpanderStyle" TargetType="Expander"> <Setter Property="IsTabStop" Value="False" /> <Setter Property="Background" Value="{ThemeResource ExpanderContentBackground}" /> <Setter Property="BackgroundSizing" Value="InnerBorderEdge" /> <Setter Property="MinWidth" Value="{ThemeResource FlyoutThemeMinWidth}" /> <Setter Property="MinHeight" Value="{StaticResource ExpanderMinHeight}" /> <Setter Property="BorderThickness" Value="{ThemeResource ExpanderContentDownBorderThickness}" /> <Setter Property="BorderBrush" Value="{ThemeResource ExpanderContentBorderBrush}" /> <Setter Property="Padding" Value="{StaticResource ExpanderContentPadding}" /> <Setter Property="HorizontalAlignment" Value="Left" /> <Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="CornerRadius" Value="{ThemeResource ControlCornerRadius}" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="Expander"> <Grid MinWidth="{TemplateBinding MinWidth}" MaxWidth="{TemplateBinding MaxWidth}"> <Grid.RowDefinitions> <RowDefinition x:Name="Row0" Height="Auto" /> <RowDefinition x:Name="Row1" Height="*" /> </Grid.RowDefinitions> <ToggleButton x:Name="ExpanderHeader" MinHeight="{TemplateBinding MinHeight}" Padding="{StaticResource ExpanderHeaderPadding}" HorizontalAlignment="Stretch" HorizontalContentAlignment="{StaticResource ExpanderHeaderHorizontalContentAlignment}" VerticalContentAlignment="{StaticResource ExpanderHeaderVerticalContentAlignment}" AutomationProperties.AutomationId="ExpanderToggleButton" Background="{ThemeResource ExpanderHeaderBackground}" BackgroundSizing="{TemplateBinding BackgroundSizing}" BorderBrush="{ThemeResource ExpanderHeaderBorderBrush}" BorderThickness="{ThemeResource ExpanderHeaderBorderThickness}" Content="{TemplateBinding Header}" ContentTemplate="{TemplateBinding HeaderTemplate}" ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}" CornerRadius="{TemplateBinding CornerRadius}" IsChecked="{Binding Path=IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" IsEnabled="{TemplateBinding IsEnabled}" Style="{StaticResource ExpanderHeaderDownStyle}" /> <!-- The Clip Is A Composition Clip Applied In Code --> <Border x:Name="ExpanderContentClip" Grid.Row="1"> <Border x:Name="ExpanderContent" MinHeight="{TemplateBinding MinHeight}" Padding="{TemplateBinding Padding}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{TemplateBinding Background}" BackgroundSizing="{TemplateBinding BackgroundSizing}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{StaticResource ExpanderContentDownBorderThickness}" CornerRadius="{Binding CornerRadius, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BottomCornerRadiusFilterConverter}}" Visibility="Collapsed"> <ContentPresenter HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}" /> <Border.RenderTransform> <CompositeTransform /> </Border.RenderTransform> </Border> </Border> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="ExpandStates"> <VisualState x:Name="ExpandUp"> <VisualState.Setters> <Setter Target="ExpanderHeader.CornerRadius" Value="{Binding CornerRadius, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BottomCornerRadiusFilterConverter}}" /> </VisualState.Setters> <VisualState.Storyboard> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ExpanderContent" Storyboard.TargetProperty="Visibility"> <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" /> </ObjectAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="ExpanderContent" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)"> <DiscreteDoubleKeyFrame KeyTime="0" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ContentHeight}" /> <SplineDoubleKeyFrame KeyTime="0" Value="0" /> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualState.Storyboard> </VisualState> <VisualState x:Name="CollapseDown"> <VisualState.Storyboard> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ExpanderContent" Storyboard.TargetProperty="Visibility"> <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed" /> </ObjectAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="ExpanderContent" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)"> <DiscreteDoubleKeyFrame KeyTime="0" Value="0" /> <SplineDoubleKeyFrame KeyTime="0" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ContentHeight}" /> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualState.Storyboard> </VisualState> <VisualState x:Name="ExpandDown"> <VisualState.Setters> <Setter Target="ExpanderHeader.CornerRadius" Value="{Binding CornerRadius, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource TopCornerRadiusFilterConverter}}" /> </VisualState.Setters> <VisualState.Storyboard> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ExpanderContent" Storyboard.TargetProperty="Visibility"> <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" /> </ObjectAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="ExpanderContent" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)"> <DiscreteDoubleKeyFrame KeyTime="0" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.NegativeContentHeight}" /> <SplineDoubleKeyFrame KeyTime="0" Value="0" /> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualState.Storyboard> </VisualState> <VisualState x:Name="CollapseUp"> <VisualState.Storyboard> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ExpanderContent" Storyboard.TargetProperty="Visibility"> <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed" /> </ObjectAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="ExpanderContent" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)"> <DiscreteDoubleKeyFrame KeyTime="0" Value="0" /> <SplineDoubleKeyFrame KeyTime="0" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.NegativeContentHeight}" /> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualState.Storyboard> </VisualState> </VisualStateGroup> <VisualStateGroup x:Name="ExpandDirectionStates"> <VisualState x:Name="Down" /> <VisualState x:Name="Up"> <VisualState.Setters> <Setter Target="ExpanderHeader.Style" Value="{StaticResource ExpanderHeaderUpStyle}" /> <Setter Target="ExpanderContent.BorderThickness" Value="{StaticResource ExpanderContentUpBorderThickness}" /> <Setter Target="ExpanderContent.CornerRadius" Value="{Binding CornerRadius, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource TopCornerRadiusFilterConverter}}" /> <Setter Target="ExpanderHeader.(Grid.Row)" Value="1" /> <Setter Target="ExpanderContentClip.(Grid.Row)" Value="0" /> <Setter Target="Row0.Height" Value="*" /> <Setter Target="Row1.Height" Value="Auto" /> </VisualState.Setters> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="ExpanderHeaderDownStyle" TargetType="ToggleButton"> <Setter Property="Padding" Value="{StaticResource ExpanderHeaderPadding}" /> <Setter Property="HorizontalContentAlignment" Value="Left" /> <Setter Property="BackgroundSizing" Value="InnerBorderEdge" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ToggleButton"> <Grid x:Name="ToggleButtonGrid" Width="{TemplateBinding Width}" MinWidth="{TemplateBinding MinWidth}" MinHeight="{TemplateBinding MinHeight}" MaxWidth="{TemplateBinding MaxWidth}" Padding="{TemplateBinding Padding}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" Background="{TemplateBinding Background}" BackgroundSizing="{TemplateBinding BackgroundSizing}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="{TemplateBinding CornerRadius}"> <Grid x:Name="HoverGrid" Height="{StaticResource ExpanderHeaderInnerHeight}" Margin="{StaticResource ExpanderHeaderInnerMargin}" Padding="{StaticResource ExpanderHeaderInnerPadding}" HorizontalAlignment="Left" Background="{ThemeResource ExpanderChevronBackground}" BorderBrush="{ThemeResource ExpanderChevronBorderBrush}" BorderThickness="{ThemeResource ExpanderChevronBorderThickness}" ColumnSpacing="4" CornerRadius="{StaticResource ControlCornerRadius}"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Grid.BackgroundTransition> <BrushTransition Duration="0:0:0.083" /> </Grid.BackgroundTransition> <Border x:Name="ExpandCollapseChevronBorder" Grid.Column="0" Width="32" Height="32"> <AnimatedIcon x:Name="ExpandCollapseChevron" Width="12" Height="12" AnimatedIcon.State="NormalOff" AutomationProperties.AccessibilityView="Raw" Foreground="{ThemeResource TextFillColorSecondaryBrush}" RenderTransformOrigin="0.5, 0.5"> <animatedvisuals:AnimatedChevronUpDownSmallVisualSource /> <AnimatedIcon.FallbackIconSource> <FontIconSource FontFamily="{StaticResource SymbolThemeFontFamily}" Glyph="{StaticResource ExpanderChevronDownGlyph}" IsTextScaleFactorEnabled="False" /> </AnimatedIcon.FallbackIconSource> <AnimatedIcon.RenderTransform> <RotateTransform x:Name="ExpandCollapseChevronRotateTransform" Angle="0" /> </AnimatedIcon.RenderTransform> </AnimatedIcon> </Border> <ContentPresenter x:Name="ContentPresenter" Grid.Column="1" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" ContentTransitions="{TemplateBinding ContentTransitions}" Foreground="{TemplateBinding Foreground}" /> </Grid> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualState x:Name="Normal"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderForeground}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HoverGrid" Storyboard.TargetProperty="BorderBrush"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderBorderBrush}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HoverGrid" Storyboard.TargetProperty="Background"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderChevronBackground}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ExpandCollapseChevron" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextFillColorSecondaryBrush}" /> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:Name="PointerOver"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderForegroundPointerOver}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HoverGrid" Storyboard.TargetProperty="BorderBrush"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderBorderPointerOverBrush}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HoverGrid" Storyboard.TargetProperty="Background"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderChevronPointerOverBackground}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ExpandCollapseChevron" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderChevronPointerOverForeground}" /> </ObjectAnimationUsingKeyFrames> </Storyboard> <VisualState.Setters> <Setter Target="ExpandCollapseChevron.(AnimatedIcon.State)" Value="PointerOverOff" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Pressed"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderForegroundPressed}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HoverGrid" Storyboard.TargetProperty="BorderBrush"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderBorderPressedBrush}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HoverGrid" Storyboard.TargetProperty="Background"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderChevronPressedBackground}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ExpandCollapseChevron" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderChevronPressedForeground}" /> </ObjectAnimationUsingKeyFrames> </Storyboard> <VisualState.Setters> <Setter Target="ExpandCollapseChevron.(AnimatedIcon.State)" Value="PressedOff" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Disabled"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderDisabledForeground}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HoverGrid" Storyboard.TargetProperty="BorderBrush"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderDisabledBorderBrush}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HoverGrid" Storyboard.TargetProperty="Background"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderChevronBackground}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ExpandCollapseChevron" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderDisabledForeground}" /> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:Name="Checked"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderForeground}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HoverGrid" Storyboard.TargetProperty="BorderBrush"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderBorderBrush}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HoverGrid" Storyboard.TargetProperty="Background"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderChevronBackground}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ExpandCollapseChevron" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextFillColorSecondaryBrush}" /> </ObjectAnimationUsingKeyFrames> </Storyboard> <VisualState.Setters> <Setter Target="ExpandCollapseChevron.(AnimatedIcon.State)" Value="NormalOn" /> </VisualState.Setters> </VisualState> <VisualState x:Name="CheckedPointerOver"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderForegroundPointerOver}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HoverGrid" Storyboard.TargetProperty="BorderBrush"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderBorderPointerOverBrush}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HoverGrid" Storyboard.TargetProperty="Background"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderChevronPointerOverBackground}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ExpandCollapseChevron" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderChevronPointerOverForeground}" /> </ObjectAnimationUsingKeyFrames> </Storyboard> <VisualState.Setters> <Setter Target="ExpandCollapseChevron.(AnimatedIcon.State)" Value="PointerOverOn" /> </VisualState.Setters> </VisualState> <VisualState x:Name="CheckedPressed"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderForegroundPressed}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HoverGrid" Storyboard.TargetProperty="BorderBrush"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderBorderPressedBrush}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HoverGrid" Storyboard.TargetProperty="Background"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderChevronPressedBackground}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ExpandCollapseChevron" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderChevronPressedForeground}" /> </ObjectAnimationUsingKeyFrames> </Storyboard> <VisualState.Setters> <Setter Target="ExpandCollapseChevron.(AnimatedIcon.State)" Value="PressedOn" /> </VisualState.Setters> </VisualState> <VisualState x:Name="CheckedDisabled"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderDisabledForeground}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ToggleButtonGrid" Storyboard.TargetProperty="BorderBrush"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderDisabledBorderBrush}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ToggleButtonGrid" Storyboard.TargetProperty="Background"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderDisabledBackground}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ExpandCollapseChevron" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ExpanderHeaderDisabledForeground}" /> </ObjectAnimationUsingKeyFrames> </Storyboard> <VisualState.Setters> <Setter Target="ExpandCollapseChevron.(AnimatedIcon.State)" Value="NormalOn" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Indeterminate" /> <VisualState x:Name="IndeterminatePointerOver" /> <VisualState x:Name="IndeterminatePressed" /> <VisualState x:Name="IndeterminateDisabled" /> </VisualStateGroup> </VisualStateManager.VisualStateGroups> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> </UserControl.Resources> <!-- Widget List --> <ScrollViewer Background="Transparent" RightTapped="ScrollViewer_RightTapped"> <FlyoutBase.AttachedFlyout> <MenuFlyout x:Name="HomePageContextMenu"> <MenuFlyoutSubItem Text="{helpers:ResourceString Name=Widgets}"> <MenuFlyoutSubItem.Icon> <FontIcon Glyph="" /> </MenuFlyoutSubItem.Icon> <ToggleMenuFlyoutItem IsChecked="{x:Bind ViewModel.ShowQuickAccessWidget, Mode=TwoWay}" Text="{helpers:ResourceString Name=QuickAccess}" /> <ToggleMenuFlyoutItem IsChecked="{x:Bind ViewModel.ShowDrivesWidget, Mode=TwoWay}" Text="{helpers:ResourceString Name=Drives}" /> <ToggleMenuFlyoutItem IsChecked="{x:Bind ViewModel.ShowNetworkLocationsWidget, Mode=TwoWay}" Text="{helpers:ResourceString Name=NetworkLocations}" /> <ToggleMenuFlyoutItem IsChecked="{x:Bind ViewModel.ShowFileTagsWidget, Mode=TwoWay}" Text="{helpers:ResourceString Name=FileTags}" /> <ToggleMenuFlyoutItem IsChecked="{x:Bind ViewModel.ShowRecentFilesWidget, Mode=TwoWay}" Text="{helpers:ResourceString Name=RecentFiles}" /> </MenuFlyoutSubItem> <MenuFlyoutSubItem x:Name="SplitPaneSubMenu" x:Load="{x:Bind Commands.SplitPaneHorizontally.IsExecutable, Mode=OneWay}" Text="{helpers:ResourceString Name=SplitPane}"> <uc:MenuFlyoutItemWithThemedIcon Command="{x:Bind Commands.SplitPaneVertically, Mode=OneWay}" Text="{x:Bind Commands.SplitPaneVertically.Label}" ThemedIconStyle="{x:Bind Commands.SplitPaneVertically.ThemedIconStyle}" /> <uc:MenuFlyoutItemWithThemedIcon Command="{x:Bind Commands.SplitPaneHorizontally, Mode=OneWay}" Text="{x:Bind Commands.SplitPaneHorizontally.Label}" ThemedIconStyle="{x:Bind Commands.SplitPaneHorizontally.ThemedIconStyle}" /> </MenuFlyoutSubItem> <uc:MenuFlyoutItemWithThemedIcon x:Name="CloseActivePaneMenuItem" x:Load="{x:Bind Commands.CloseActivePane.IsExecutable, Mode=OneWay}" Command="{x:Bind Commands.CloseActivePane}" Text="{x:Bind Commands.CloseActivePane.Label}" ThemedIconStyle="{x:Bind Commands.CloseActivePane.ThemedIconStyle}" /> </MenuFlyout> </FlyoutBase.AttachedFlyout> <ListView ItemsSource="{x:Bind ViewModel.WidgetItems, Mode=OneWay}" SelectionMode="None"> <ListView.ItemTemplate> <DataTemplate x:DataType="dataitems:WidgetContainerItem"> <Grid> <Expander Padding="16,0,16,0" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" AutomationProperties.Name="{x:Bind WidgetAutomationProperties, Mode=OneWay}" IsExpanded="{x:Bind IsExpanded, Mode=TwoWay}"> <Expander.Header> <TextBlock FontWeight="SemiBold" Foreground="{ThemeResource TextFillColorSecondaryBrush}" Style="{StaticResource App.Theme.CaptionTextBlockStyle}" Text="{x:Bind WidgetItemModel.WidgetHeader, Mode=OneWay}" /> </Expander.Header> <ContentControl HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" Content="{x:Bind WidgetControl, Mode=OneWay}" /> <Expander.Resources> <SolidColorBrush x:Key="ExpanderHeaderBackground" Color="Transparent" /> <SolidColorBrush x:Key="ExpanderHeaderBorderBrush" Color="Transparent" /> <SolidColorBrush x:Key="ExpanderHeaderBorderPointerOverBrush" Color="Transparent" /> <SolidColorBrush x:Key="ExpanderHeaderBorderPressedBrush" Color="Transparent" /> <SolidColorBrush x:Key="ExpanderContentBackground" Color="Transparent" /> <SolidColorBrush x:Key="ExpanderContentBorderBrush" Color="Transparent" /> </Expander.Resources> </Expander> <!-- Menu Flyout --> <Button x:Name="MenuFlyout" Width="36" Height="32" Margin="0,8,16,0" Padding="0" HorizontalAlignment="Right" VerticalAlignment="Top" x:Load="{x:Bind ShowMenuFlyout, Mode=OneWay}" AutomationProperties.Name="{helpers:ResourceString Name=MoreOptions}" Background="Transparent" BorderBrush="Transparent" ToolTipService.ToolTip="{helpers:ResourceString Name=MoreOptions}"> <FontIcon HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="14" Foreground="{ThemeResource TextFillColorSecondaryBrush}" Glyph="" /> <Button.Flyout> <MenuFlyout> <MenuFlyoutItem x:Name="FlyoutItem" Command="{x:Bind MenuFlyoutItem.Command}" Icon="{x:Bind MenuFlyoutItem.Icon}" Text="{x:Bind MenuFlyoutItem.Text}" /> </MenuFlyout> </Button.Flyout> </Button> </Grid> </DataTemplate> </ListView.ItemTemplate> <ListView.ItemContainerStyle> <Style TargetType="ListViewItem"> <Setter Property="Margin" Value="0,4" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ListViewItem"> <ListViewItemPresenter x:Name="Root" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" /> </ControlTemplate> </Setter.Value> </Setter> </Style> </ListView.ItemContainerStyle> <!-- Remove All Transitions --> <ListView.ItemContainerTransitions> <TransitionCollection /> </ListView.ItemContainerTransitions> </ListView> </ScrollViewer> </Page>