/
githubmirror
/
Files
Обзор
Документация
Войти
/
githubmirror
/
Files
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Files.App/UserControls/Pane/InfoPane.xaml
622 строки
25 KB
Jack Ye
Code Quality: Simplified binding statements (#16930)
18 мар 2025, 21:43
Не верифицирован
18 мар 2025, 21:43
38701a9
Код
Авторство
О чём код?
<!-- Copyright (c) Files Community. Licensed under the MIT License. --> <UserControl x:Class="Files.App.UserControls.InfoPane" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="using:Files.App.Controls" xmlns:converters="using:CommunityToolkit.WinUI.Converters" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:helpers="using:Files.App.Helpers" xmlns:items="using:Files.App.Data.Items" xmlns:local="using:Files.App.Converters" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:properties="using:Files.App.ViewModels.Properties" xmlns:toolkit="using:CommunityToolkit.WinUI.Controls" xmlns:triggers="using:CommunityToolkit.WinUI" xmlns:usercontrols="using:Files.App.UserControls" x:Name="Root" MinWidth="90" AutomationProperties.Name="{helpers:ResourceString Name=SelectedFilePreviewPane/AutomationProperties/Name}" SizeChanged="Root_SizeChanged" Unloaded="Root_Unloaded" mc:Ignorable="d"> <UserControl.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="ms-appx:///Styles/PropertiesStyles.xaml" /> <ResourceDictionary> <converters:BoolNegationConverter x:Key="BoolNegationConverter" /> <local:EnumToBoolConverter x:Key="EnumToBoolConverter" /> <Style x:Key="Local.RadioButtonStyle" TargetType="RadioButton"> <Setter Property="Foreground" Value="{ThemeResource TextFillColorSecondaryBrush}" /> <Setter Property="BorderBrush" Value="{ThemeResource RadioButtonBorderBrush}" /> <Setter Property="HorizontalAlignment" Value="Left" /> <Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="HorizontalContentAlignment" Value="Left" /> <Setter Property="VerticalContentAlignment" Value="Top" /> <Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}" /> <Setter Property="FontSize" Value="{ThemeResource ControlContentThemeFontSize}" /> <Setter Property="MinWidth" Value="0" /> <Setter Property="UseSystemFocusVisuals" Value="{StaticResource UseSystemFocusVisuals}" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="RadioButton"> <Grid x:Name="RootGrid"> <Grid x:Name="ContainerGrid" Height="32" Background="Transparent" BorderThickness="1" CornerRadius="4"> <ContentPresenter x:Name="ContentPresenter" Padding="16,0,16,0" HorizontalAlignment="Stretch" VerticalAlignment="Center" AutomationProperties.AccessibilityView="Raw" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" ContentTransitions="{TemplateBinding ContentTransitions}" TextWrapping="Wrap" /> <Border x:Name="SelectionPill" Width="16" Height="3" HorizontalAlignment="Center" VerticalAlignment="Bottom" Background="Transparent" CornerRadius="1" /> </Grid> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualState x:Name="Normal" /> <VisualState x:Name="PointerOver"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextFillColorPrimaryBrush}" /> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:Name="Disabled"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextFillColorDisabledBrush}" /> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> </VisualStateGroup> <VisualStateGroup x:Name="CheckStates"> <VisualState x:Name="Checked"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContainerGrid" Storyboard.TargetProperty="Background"> <DiscreteObjectKeyFrame KeyTime="0:0:00.3" Value="{ThemeResource ControlFillColorDefaultBrush}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContainerGrid" Storyboard.TargetProperty="BorderBrush"> <DiscreteObjectKeyFrame KeyTime="0:0:00.3" Value="{ThemeResource ControlElevationBorderBrush}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="SelectionPill" Storyboard.TargetProperty="Background"> <DiscreteObjectKeyFrame KeyTime="0:0:00.3" Value="{ThemeResource SystemAccentColor}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextFillColorPrimaryBrush}" /> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:Name="Unchecked" /> <VisualState x:Name="Indeterminate" /> </VisualStateGroup> </VisualStateManager.VisualStateGroups> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="Local.FileDetailsHeaderTextBlockStyle" BasedOn="{StaticResource CaptionTextBlockStyle}" TargetType="TextBlock"> <Setter Property="FontWeight" Value="SemiBold" /> <Setter Property="Foreground" Value="{ThemeResource TextFillColorTertiaryBrush}" /> <Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}" /> </Style> <Style x:Key="Local.FileDetailsTextBlockStyle" TargetType="TextBlock"> <Setter Property="FontWeight" Value="Normal" /> <Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}" /> </Style> </ResourceDictionary> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </UserControl.Resources> <Grid Background="{ThemeResource App.Theme.InfoPane.BackgroundBrush}" BackgroundSizing="InnerBorderEdge" BorderBrush="{ThemeResource CardStrokeColorDefaultBrush}" BorderThickness="1" CornerRadius="8"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="2*" /> <RowDefinition x:Name="PropertiesRow" Height="3*" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="2*" /> <ColumnDefinition x:Name="PropertiesColumn" Width="3*" /> </Grid.ColumnDefinitions> <!-- Panes --> <StackPanel Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Margin="12" Padding="-1" HorizontalAlignment="Center" VerticalAlignment="Center" Background="{ThemeResource SubtleFillColorTertiaryBrush}" BorderBrush="{ThemeResource DividerStrokeColorDefaultBrush}" BorderThickness="1" CornerRadius="4" Orientation="Horizontal"> <!-- Details --> <RadioButton Command="{x:Bind Commands.ToggleDetailsPane, Mode=OneWay}" Content="{helpers:ResourceString Name=Details}" IsChecked="{x:Bind ViewModel.SelectedTab, Converter={StaticResource EnumToBoolConverter}, ConverterParameter=Details, Mode=OneWay}" Style="{StaticResource Local.RadioButtonStyle}" /> <!-- Preview --> <RadioButton Command="{x:Bind Commands.TogglePreviewPane, Mode=OneWay}" Content="{helpers:ResourceString Name=Preview}" IsChecked="{x:Bind ViewModel.SelectedTab, Converter={StaticResource EnumToBoolConverter}, ConverterParameter=Preview, Mode=OneWay}" Style="{StaticResource Local.RadioButtonStyle}" /> </StackPanel> <Grid x:Name="RootPreviewGrid" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Margin="8" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" AutomationProperties.Name="{helpers:ResourceString Name=PreviewPaneFilePreview/AutomationProperties/Name}"> <Grid.ContextFlyout> <MenuFlyout> <MenuFlyoutItem HorizontalAlignment="Stretch" IsEnabled="{x:Bind ViewModel.ShowCloudItemButton, Mode=OneWay}" Tapped="MenuFlyoutItem_Tapped" Text="{helpers:ResourceString Name=PreviewPaneLoadCloudItemButton/Text}" ToolTipService.ToolTip="{helpers:ResourceString Name=PreviewPaneLoadCloudItemButton/ToolTipService/ToolTip}" /> </MenuFlyout> </Grid.ContextFlyout> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <TextBlock x:Name="PreviewErrorText" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{helpers:ResourceString Name=NoItemSelected}" TextWrapping="WrapWholeWords" /> <ContentPresenter x:Name="PreviewControlPresenter" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Content="{x:Bind ViewModel.PreviewPaneContent, Mode=OneWay}" Visibility="Collapsed" /> <ProgressRing x:Name="PreviewLoadingIndicator" IsIndeterminate="True" Visibility="Collapsed" /> </Grid> <ScrollViewer x:Name="RootPropertiesScrollViewer" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" AutomationProperties.Name="{helpers:ResourceString Name=PreviewPaneFileDetails/AutomationProperties/Name}" Visibility="Visible"> <StackPanel Orientation="Vertical"> <TextBlock x:Name="DetailsListHeader" HorizontalAlignment="Center" FontFamily="{ThemeResource ContentControlThemeFontFamily}" FontSize="20" FontWeight="Bold" IsTextSelectionEnabled="True" Text="{x:Bind ViewModel.SelectedItem.Name, Mode=OneWay}" TextAlignment="Center" TextWrapping="Wrap" Visibility="Collapsed" /> <!-- Drive Details --> <TextBlock x:Name="DriveFormatAndTypeTextBlock" Margin="12,12,12,24" HorizontalAlignment="Center" IsTextSelectionEnabled="True" Style="{ThemeResource BodyTextBlockStyle}" TextAlignment="Center" TextWrapping="Wrap" Visibility="Collapsed"> <Run Text="{x:Bind ViewModel.SelectedDriveItem.Filesystem, Mode=OneWay}" /> <Run Foreground="{ThemeResource TextFillColorTertiaryBrush}" Text="{x:Bind ViewModel.SelectedDriveItem.TypeText, Mode=OneWay}" /> </TextBlock> <TextBlock x:Name="UsedSpaceTextBlock" HorizontalAlignment="Center" Foreground="{ThemeResource AccentTextFillColorPrimaryBrush}" IsTextSelectionEnabled="True" Style="{ThemeResource SubtitleTextBlockStyle}" Text="{x:Bind ViewModel.SelectedDriveItem.UsedSpaceText, Mode=OneWay}" TextAlignment="Center" TextWrapping="Wrap" Visibility="Collapsed" /> <controls:StorageBar x:Name="DriveSpaceProgressBar" Margin="8,8,8,8" HorizontalAlignment="Stretch" TrackBarHeight="4" ValueBarHeight="8" Visibility="Collapsed" Value="{x:Bind ViewModel.SelectedDriveItem.PercentageUsed, Mode=OneWay}" /> <Grid x:Name="DriveSpaceGrid" Margin="12,0,12,24" Visibility="Collapsed"> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <TextBlock x:Name="AvailableSpaceTextBlock" FontFamily="{ThemeResource ContentControlThemeFontFamily}" FontSize="14" IsTextSelectionEnabled="True" Style="{ThemeResource BodyStrongTextBlockStyle}" Text="{x:Bind ViewModel.SelectedDriveItem.FreeSpaceText, Mode=OneWay}" TextAlignment="Left" TextWrapping="Wrap" /> <TextBlock x:Name="TotalDriveSpaceTextBlock" Grid.Column="2" Foreground="{ThemeResource TextFillColorTertiaryBrush}" IsTextSelectionEnabled="True" Style="{ThemeResource BodyStrongTextBlockStyle}" Text="{x:Bind ViewModel.SelectedDriveItem.MaxSpaceText, Mode=OneWay}" TextAlignment="Right" TextWrapping="Wrap" /> <TextBlock x:Name="AvailableSpaceLabel" Grid.Row="1" HorizontalAlignment="Left" Style="{ThemeResource BodyTextBlockStyle}" Text="{helpers:ResourceString Name=Available}" TextAlignment="Left" TextWrapping="Wrap" /> <TextBlock x:Name="TotalDriveSpaceLabel" Grid.Row="1" Grid.Column="2" HorizontalAlignment="Right" Foreground="{ThemeResource TextFillColorTertiaryBrush}" Style="{ThemeResource BodyTextBlockStyle}" Text="{helpers:ResourceString Name=Total}" TextAlignment="Right" TextWrapping="Wrap" /> </Grid> <ItemsControl x:Name="FileDetailsRepeater" Margin="12,12,12,0" ItemsSource="{x:Bind ViewModel.SelectedItem.FileDetails, Mode=OneWay}" Visibility="Collapsed"> <ItemsControl.ItemTemplate> <DataTemplate x:DataType="properties:FileProperty"> <StackPanel Padding="0,8,0,8" HorizontalAlignment="Stretch" AutomationProperties.Name="{x:Bind Name, Mode=OneWay}" Orientation="Vertical" Spacing="4"> <!-- Property --> <TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Style="{StaticResource Local.FileDetailsHeaderTextBlockStyle}" Text="{x:Bind Name, Mode=OneWay}" /> <!-- Value --> <TextBlock x:Name="PropertyValueTemplateTextBox" Grid.Column="1" HorizontalAlignment="Stretch" IsTextSelectionEnabled="True" Style="{StaticResource Local.FileDetailsTextBlockStyle}" Text="{x:Bind ValueText, Mode=TwoWay}" TextWrapping="Wrap" /> </StackPanel> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> <!-- Tags List --> <StackPanel x:Name="DetailsTagsList" Margin="12,8,12,0" Visibility="Collapsed"> <TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Style="{StaticResource Local.FileDetailsHeaderTextBlockStyle}" Text="{helpers:ResourceString Name=FileTags}" /> <GridView HorizontalAlignment="Stretch" ItemsSource="{x:Bind ViewModel.Items, Mode=OneWay}" SelectionMode="None"> <GridView.ItemsPanel> <ItemsPanelTemplate> <toolkit:WrapPanel Orientation="Horizontal" VerticalSpacing="-8" /> </ItemsPanelTemplate> </GridView.ItemsPanel> <GridView.ItemTemplate> <DataTemplate x:Name="TagTemplate" x:DataType="items:TagsListItem"> <UserControl PointerEntered="FileTag_PointerEntered" PointerExited="FileTag_PointerExited"> <StackPanel x:Name="TagPill" HorizontalAlignment="Left" VerticalAlignment="Center" Background="{ThemeResource SubtleFillColorTransparent}" CornerRadius="12"> <!-- Tag Template --> <StackPanel x:Name="TagStackPanel" Height="28" Padding="12,0,12,0" VerticalAlignment="Center" x:Load="{x:Bind IsTag, Mode=OneWay}" AutomationProperties.Name="{x:Bind AsTag.Tag.Name, Mode=OneWay}" Orientation="Horizontal" Spacing="8" Tapped="TagItem_Tapped" ToolTipService.ToolTip="{x:Bind AsTag.Tag.Name, Mode=OneWay}"> <!-- Tag icon --> <controls:ThemedIcon Width="16" Height="16" IconColorType="Custom" IsFilled="True" Style="{StaticResource App.ThemedIcons.Tag}" Color="{x:Bind AsTag.Tag.Color, Mode=OneWay}" /> <!-- Tag name --> <TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Style="{StaticResource Local.FileDetailsTextBlockStyle}" Text="{x:Bind AsTag.Tag.Name, Mode=OneWay}" TextTrimming="CharacterEllipsis" /> </StackPanel> <!-- Edit Tag Flyout --> <Button x:Name="DetailsEditTags" Height="28" Padding="12,0,12,0" VerticalAlignment="Center" x:Load="{x:Bind IsFlyout, Mode=OneWay}" AutomationProperties.Name="{helpers:ResourceString Name=EditTags}" Background="Transparent" BorderThickness="0" Flyout="{x:Bind AsFlyout.Flyout, Mode=OneWay}" ToolTipService.ToolTip="{helpers:ResourceString Name=EditTags}"> <Button.Resources> <SolidColorBrush x:Key="ButtonBackgroundPointerOver" Color="Transparent" /> </Button.Resources> <Button.Content> <StackPanel VerticalAlignment="Center" Orientation="Horizontal" Spacing="8"> <!-- Icon --> <controls:ThemedIcon Width="16" Height="16" VerticalAlignment="Center" Style="{StaticResource App.ThemedIcons.TagEdit}" /> <!-- Text --> <TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Style="{StaticResource Local.FileDetailsTextBlockStyle}" Text="{helpers:ResourceString Name=EditTags}" /> </StackPanel> </Button.Content> </Button> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualState x:Name="Normal" /> <VisualState x:Name="PointerOver"> <VisualState.Setters> <Setter Target="TagPill.Background" Value="{ThemeResource SubtleFillColorSecondaryBrush}" /> </VisualState.Setters> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> </StackPanel> </UserControl> </DataTemplate> </GridView.ItemTemplate> </GridView> </StackPanel> <!-- Open Properties Button --> <Button x:Name="DetailsOpenProperties" Margin="12,0,8,8" HorizontalAlignment="Left" Command="{x:Bind Commands.OpenProperties}" IsEnabled="{x:Bind Commands.OpenProperties.IsExecutable, Mode=OneWay}" ToolTipService.ToolTip="{x:Bind Commands.OpenProperties.LabelWithHotKey, Mode=OneWay}" Visibility="Collapsed"> <Button.Content> <StackPanel Orientation="Horizontal" Spacing="8"> <controls:ThemedIcon Style="{x:Bind Commands.OpenProperties.ThemedIconStyle}" /> <TextBlock Text="{helpers:ResourceString Name=Properties}" /> </StackPanel> </Button.Content> </Button> </StackPanel> </ScrollViewer> <VisualStateManager.VisualStateGroups> <VisualStateGroup> <VisualState x:Name="NoItemSelected"> <VisualState.StateTriggers> <triggers:IsEqualStateTrigger Value="{x:Bind ViewModel.PreviewPaneState, Mode=OneWay}" To="0" /> <triggers:IsNullOrEmptyStateTrigger Value="{x:Bind ViewModel, Mode=OneWay}" /> </VisualState.StateTriggers> </VisualState> <VisualState x:Name="NoPreviewAvailable"> <VisualState.StateTriggers> <triggers:IsEqualStateTrigger Value="{x:Bind ViewModel.PreviewPaneState, Mode=OneWay}" To="1" /> </VisualState.StateTriggers> <VisualState.Setters> <Setter Target="PreviewErrorText.Visibility" Value="Visible" /> <Setter Target="PreviewErrorText.Text" Value="{helpers:ResourceString Name=DetailsPanePreviewNotAvaliableText}" /> <Setter Target="FileDetailsRepeater.Visibility" Value="Visible" /> <Setter Target="DetailsTagsList.Visibility" Value="Visible" /> <Setter Target="DetailsOpenProperties.Visibility" Value="Visible" /> <Setter Target="DetailsListHeader.Visibility" Value="Visible" /> <Setter Target="PreviewControlPresenter.Visibility" Value="Collapsed" /> </VisualState.Setters> </VisualState> <VisualState x:Name="NoPreviewOrDetailsAvailable"> <VisualState.StateTriggers> <triggers:IsEqualStateTrigger Value="{x:Bind ViewModel.PreviewPaneState, Mode=OneWay}" To="2" /> </VisualState.StateTriggers> <VisualState.Setters> <Setter Target="PreviewErrorText.Visibility" Value="Visible" /> <Setter Target="PreviewErrorText.Text" Value="{helpers:ResourceString Name=DetailsPanePreviewNotAvaliableText}" /> <Setter Target="FileDetailsRepeater.Visibility" Value="Collapsed" /> <Setter Target="DetailsTagsList.Visibility" Value="Collapsed" /> <Setter Target="DetailsOpenProperties.Visibility" Value="Collapsed" /> <Setter Target="PreviewControlPresenter.Visibility" Value="Collapsed" /> </VisualState.Setters> </VisualState> <VisualState x:Name="PreviewAndDetailsAvailable"> <VisualState.StateTriggers> <triggers:IsEqualStateTrigger Value="{x:Bind ViewModel.PreviewPaneState, Mode=OneWay}" To="3" /> </VisualState.StateTriggers> <VisualState.Setters> <Setter Target="PreviewErrorText.Visibility" Value="Collapsed" /> <Setter Target="FileDetailsRepeater.Visibility" Value="Visible" /> <Setter Target="DetailsTagsList.Visibility" Value="Visible" /> <Setter Target="DetailsOpenProperties.Visibility" Value="Visible" /> <Setter Target="PreviewControlPresenter.Visibility" Value="Visible" /> <Setter Target="DetailsListHeader.Visibility" Value="Visible" /> </VisualState.Setters> </VisualState> <VisualState x:Name="LoadingPreview"> <VisualState.StateTriggers> <triggers:IsEqualStateTrigger Value="{x:Bind ViewModel.PreviewPaneState, Mode=OneWay}" To="4" /> </VisualState.StateTriggers> <VisualState.Setters> <Setter Target="PreviewErrorText.Visibility" Value="Collapsed" /> <Setter Target="FileDetailsRepeater.Visibility" Value="Collapsed" /> <Setter Target="DetailsTagsList.Visibility" Value="Collapsed" /> <Setter Target="DetailsOpenProperties.Visibility" Value="Collapsed" /> <Setter Target="DetailsListHeader.Visibility" Value="Visible" /> <Setter Target="PreviewControlPresenter.Visibility" Value="Collapsed" /> <Setter Target="PreviewLoadingIndicator.Visibility" Value="Visible" /> </VisualState.Setters> </VisualState> <VisualState x:Name="DriveStorageDetailsAvailable"> <VisualState.StateTriggers> <triggers:IsEqualStateTrigger Value="{x:Bind ViewModel.PreviewPaneState, Mode=OneWay}" To="5" /> </VisualState.StateTriggers> <VisualState.Setters> <Setter Target="PreviewErrorText.Visibility" Value="Collapsed" /> <Setter Target="FileDetailsRepeater.Visibility" Value="Collapsed" /> <Setter Target="DetailsTagsList.Visibility" Value="Collapsed" /> <Setter Target="DetailsOpenProperties.Visibility" Value="Visible" /> <Setter Target="PreviewControlPresenter.Visibility" Value="Visible" /> <Setter Target="DetailsListHeader.Visibility" Value="Visible" /> <Setter Target="DriveFormatAndTypeTextBlock.Visibility" Value="Visible" /> <Setter Target="UsedSpaceTextBlock.Visibility" Value="Visible" /> <Setter Target="DriveSpaceProgressBar.Visibility" Value="Visible" /> <Setter Target="DriveSpaceGrid.Visibility" Value="Visible" /> </VisualState.Setters> </VisualState> </VisualStateGroup> <VisualStateGroup> <VisualState> <VisualState.StateTriggers> <triggers:IsEqualStateTrigger Value="{x:Bind ViewModel.SelectedTab, Mode=OneWay}" To="Details" /> </VisualState.StateTriggers> <VisualState.Setters> <Setter Target="RootPropertiesScrollViewer.Visibility" Value="Visible" /> <Setter Target="PropertiesRow.Height" Value="3*" /> <Setter Target="PropertiesColumn.Width" Value="3*" /> </VisualState.Setters> </VisualState> <VisualState> <VisualState.StateTriggers> <triggers:IsEqualStateTrigger Value="{x:Bind ViewModel.SelectedTab, Mode=OneWay}" To="Preview" /> </VisualState.StateTriggers> <VisualState.Setters> <Setter Target="RootPropertiesScrollViewer.Visibility" Value="Collapsed" /> <Setter Target="PropertiesRow.Height" Value="0" /> <Setter Target="PropertiesColumn.Width" Value="0" /> </VisualState.Setters> </VisualState> </VisualStateGroup> <!-- Orientations --> <VisualStateGroup x:Name="Orientation"> <VisualState x:Name="Vertical"> <VisualState.Setters> <Setter Target="RootPreviewGrid.(Grid.Column)" Value="0" /> <Setter Target="RootPropertiesScrollViewer.Column" Value="0" /> <Setter Target="RootPropertiesScrollViewer.(Grid.RowSpan)" Value="1" /> <Setter Target="RootPropertiesScrollViewer.(Grid.ColumnSpan)" Value="2" /> <Setter Target="RootPreviewGrid.(Grid.ColumnSpan)" Value="2" /> <Setter Target="RootPreviewGrid.(Grid.RowSpan)" Value="1" /> </VisualState.Setters> </VisualState> <VisualState x:Name="Horizontal"> <VisualState.Setters> <Setter Target="RootPropertiesScrollViewer.(Grid.Column)" Value="1" /> <Setter Target="RootPropertiesScrollViewer.(Grid.RowSpan)" Value="2" /> <Setter Target="RootPropertiesScrollViewer.(Grid.ColumnSpan)" Value="1" /> <Setter Target="RootPreviewGrid.(Grid.ColumnSpan)" Value="1" /> <Setter Target="RootPreviewGrid.(Grid.RowSpan)" Value="2" /> <Setter Target="RootPropertiesScrollViewer.(Grid.Row)" Value="1" /> </VisualState.Setters> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> </Grid> </UserControl>