509 lines
31 KiB
XML
509 lines
31 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<UserControl
|
|
x:Class="FluidExplorer.Views.ExplorerPaneView"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:models="using:FluidExplorer.Models"
|
|
xmlns:vm="using:FluidExplorer.ViewModels"
|
|
xmlns:ops="using:FluidExplorer.Services.Operations"
|
|
Background="Transparent">
|
|
|
|
<UserControl.Resources>
|
|
<!-- 行高对齐资源管理器(详情 30 / 列表 24),保留 WinUI 原生 ListViewItem 模板与动画 -->
|
|
<x:Double x:Key="ListViewItemMinHeight">30</x:Double>
|
|
<x:Double x:Key="GridViewItemMinHeight">0</x:Double>
|
|
<x:Double x:Key="GridViewItemMinWidth">0</x:Double>
|
|
|
|
<!-- 资源管理器的"图标+文字"工具按钮(新建 / 排序 / 查看):12px 文字、32 高、4 圆角 -->
|
|
<Style x:Key="ToolbarTextButtonStyle" TargetType="Button" BasedOn="{StaticResource DefaultButtonStyle}">
|
|
<Setter Property="Height" Value="32" />
|
|
<Setter Property="MinWidth" Value="0" />
|
|
<Setter Property="Padding" Value="8,0" />
|
|
<Setter Property="CornerRadius" Value="4" />
|
|
<Setter Property="Background" Value="Transparent" />
|
|
<Setter Property="BorderThickness" Value="0" />
|
|
<Setter Property="VerticalAlignment" Value="Center" />
|
|
<Setter Property="FontSize" Value="12" />
|
|
</Style>
|
|
</UserControl.Resources>
|
|
|
|
<Grid x:Name="PaneRoot">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<!-- ═══ 命令栏(对齐资源管理器:新建 / 剪切复制粘贴 / 重命名 / 删除 / 撤销 / 排序 / 视图) ═══ -->
|
|
<Grid Grid.Row="0" Height="48" Padding="8,0" ColumnSpacing="4">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<StackPanel Grid.Column="0" Orientation="Horizontal" Spacing="2">
|
|
<Button x:Name="SidebarToggle" Style="{StaticResource ToolbarButtonStyle}" ToolTipService.ToolTip="导航窗格" Click="OnToggleSidebarClick">
|
|
<FontIcon Glyph="" FontSize="16" />
|
|
</Button>
|
|
<Button Style="{StaticResource ToolbarTextButtonStyle}" ToolTipService.ToolTip="新建 (Ctrl+Shift+N)">
|
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
|
<FontIcon Glyph="{StaticResource GlyphNew}" FontSize="16" />
|
|
<TextBlock Text="新建" VerticalAlignment="Center" />
|
|
</StackPanel>
|
|
<Button.Flyout>
|
|
<MenuFlyout Placement="BottomEdgeAlignedLeft">
|
|
<MenuFlyoutItem Text="文件夹" Click="OnNewFolderClick">
|
|
<MenuFlyoutItem.Icon><FontIcon Glyph="{StaticResource GlyphFolder}" /></MenuFlyoutItem.Icon>
|
|
</MenuFlyoutItem>
|
|
<MenuFlyoutItem Text="文本文档" Click="OnNewTextFileClick">
|
|
<MenuFlyoutItem.Icon><FontIcon Glyph="{StaticResource GlyphExtension}" /></MenuFlyoutItem.Icon>
|
|
</MenuFlyoutItem>
|
|
<MenuFlyoutSeparator />
|
|
<MenuFlyoutItem Text="新建标签页" Click="OnNewTabClick" />
|
|
</MenuFlyout>
|
|
</Button.Flyout>
|
|
</Button>
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Column="1" Orientation="Horizontal" Spacing="2">
|
|
<Button Style="{StaticResource ToolbarButtonStyle}" ToolTipService.ToolTip="剪切 (Ctrl+X)" Click="OnCutClick">
|
|
<FontIcon Glyph="{StaticResource GlyphCut}" FontSize="16" />
|
|
</Button>
|
|
<Button Style="{StaticResource ToolbarButtonStyle}" ToolTipService.ToolTip="复制 (Ctrl+C)" Click="OnCopyClick">
|
|
<FontIcon Glyph="{StaticResource GlyphCopy}" FontSize="16" />
|
|
</Button>
|
|
<Button Style="{StaticResource ToolbarButtonStyle}" ToolTipService.ToolTip="粘贴 (Ctrl+V)" Click="OnPasteClick">
|
|
<FontIcon Glyph="{StaticResource GlyphPaste}" FontSize="16" />
|
|
</Button>
|
|
<Button Style="{StaticResource ToolbarButtonStyle}" ToolTipService.ToolTip="重命名 (F2)" Click="OnRenameClick">
|
|
<FontIcon Glyph="{StaticResource GlyphRename}" FontSize="16" />
|
|
</Button>
|
|
<Button Style="{StaticResource ToolbarButtonStyle}" ToolTipService.ToolTip="删除 (Delete)" Click="OnDeleteClick">
|
|
<FontIcon Glyph="{StaticResource GlyphDelete}" FontSize="16" />
|
|
</Button>
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Column="2" Orientation="Horizontal" Spacing="2" Margin="8,0,0,0">
|
|
<Button Style="{StaticResource ToolbarButtonStyle}" ToolTipService.ToolTip="撤销 (Ctrl+Z)" Click="OnUndoClick">
|
|
<FontIcon Glyph="{StaticResource GlyphUndo}" FontSize="16" />
|
|
</Button>
|
|
<Button x:Name="RestoreButton" Style="{StaticResource ToolbarButtonStyle}" ToolTipService.ToolTip="还原所选项目"
|
|
Click="OnRestoreClick" Visibility="Collapsed">
|
|
<FontIcon Glyph="{StaticResource GlyphRestore}" FontSize="16" />
|
|
</Button>
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Column="4" Orientation="Horizontal" Spacing="2">
|
|
<Button Style="{StaticResource ToolbarButtonStyle}" ToolTipService.ToolTip="双窗格(Ctrl+Shift+D):左右对拖搬文件"
|
|
AutomationProperties.Name="双窗格" Click="OnToggleDualPaneClick">
|
|
<FontIcon Glyph="{StaticResource GlyphDualPane}" FontSize="16" />
|
|
</Button>
|
|
<Button Style="{StaticResource ToolbarTextButtonStyle}" ToolTipService.ToolTip="排序方式">
|
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
|
<FontIcon Glyph="{StaticResource GlyphSort}" FontSize="16" />
|
|
<TextBlock Text="排序" VerticalAlignment="Center" />
|
|
</StackPanel>
|
|
<Button.Flyout>
|
|
<MenuFlyout Placement="BottomEdgeAlignedRight">
|
|
<MenuFlyoutItem Text="名称" Tag="Name" Click="OnSortClick" />
|
|
<MenuFlyoutItem Text="修改日期" Tag="DateModified" Click="OnSortClick" />
|
|
<MenuFlyoutItem Text="类型" Tag="Type" Click="OnSortClick" />
|
|
<MenuFlyoutItem Text="大小" Tag="Size" Click="OnSortClick" />
|
|
<MenuFlyoutSeparator />
|
|
<MenuFlyoutItem Text="升序" Tag="Ascending" Click="OnSortDirectionClick" />
|
|
<MenuFlyoutItem Text="降序" Tag="Descending" Click="OnSortDirectionClick" />
|
|
</MenuFlyout>
|
|
</Button.Flyout>
|
|
</Button>
|
|
|
|
<Button Style="{StaticResource ToolbarTextButtonStyle}" ToolTipService.ToolTip="查看">
|
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
|
<FontIcon Glyph="{StaticResource GlyphView}" FontSize="16" />
|
|
<TextBlock Text="查看" VerticalAlignment="Center" />
|
|
</StackPanel>
|
|
<Button.Flyout>
|
|
<MenuFlyout Placement="BottomEdgeAlignedRight">
|
|
<MenuFlyoutItem Text="超大图标" Tag="ExtraLargeIcons" Click="OnViewModeClick" />
|
|
<MenuFlyoutItem Text="大图标" Tag="LargeIcons" Click="OnViewModeClick" />
|
|
<MenuFlyoutItem Text="中图标" Tag="MediumIcons" Click="OnViewModeClick" />
|
|
<MenuFlyoutItem Text="小图标" Tag="SmallIcons" Click="OnViewModeClick" />
|
|
<MenuFlyoutItem Text="列表" Tag="List" Click="OnViewModeClick" />
|
|
<MenuFlyoutItem Text="详细信息" Tag="Details" Click="OnViewModeClick" />
|
|
<MenuFlyoutSeparator />
|
|
<ToggleMenuFlyoutItem x:Name="HiddenToggle" Text="显示隐藏的项目" Click="OnToggleHiddenClick" />
|
|
<ToggleMenuFlyoutItem x:Name="ExtensionToggle" Text="显示文件扩展名" Click="OnToggleExtensionClick" />
|
|
</MenuFlyout>
|
|
</Button.Flyout>
|
|
</Button>
|
|
|
|
<Button Style="{StaticResource ToolbarButtonStyle}" ToolTipService.ToolTip="更多选项" Click="OnShellContextMenuClick">
|
|
<FontIcon Glyph="{StaticResource GlyphMore}" FontSize="16" />
|
|
</Button>
|
|
|
|
<Button Style="{StaticResource ToolbarButtonStyle}" ToolTipService.ToolTip="设置" Click="OnOpenSettingsClick">
|
|
<FontIcon Glyph="{StaticResource GlyphSettings}" FontSize="16" />
|
|
</Button>
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<!-- ═══ 地址栏(后退/前进/向上/刷新 + 面包屑 + 搜索框) ═══ -->
|
|
<Grid Grid.Row="1" Height="40" Padding="8,0" ColumnSpacing="4">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Button Grid.Column="0" Style="{StaticResource ToolbarButtonStyle}" ToolTipService.ToolTip="后退 (Alt+←)" Click="OnBackClick">
|
|
<FontIcon Glyph="{StaticResource GlyphBack}" FontSize="14" />
|
|
</Button>
|
|
<Button Grid.Column="1" Style="{StaticResource ToolbarButtonStyle}" ToolTipService.ToolTip="前进 (Alt+→)" Click="OnForwardClick">
|
|
<FontIcon Glyph="{StaticResource GlyphForward}" FontSize="14" />
|
|
</Button>
|
|
<Button Grid.Column="2" Style="{StaticResource ToolbarButtonStyle}" ToolTipService.ToolTip="向上 (Alt+↑)" Click="OnUpClick">
|
|
<FontIcon Glyph="{StaticResource GlyphUp}" FontSize="14" />
|
|
</Button>
|
|
<Button Grid.Column="3" Style="{StaticResource ToolbarButtonStyle}" ToolTipService.ToolTip="刷新 (F5)" Click="OnRefreshClick">
|
|
<FontIcon Glyph="{StaticResource GlyphRefresh}" FontSize="14" />
|
|
</Button>
|
|
|
|
<Grid Grid.Column="4" Margin="4,4" CornerRadius="4" Background="{ThemeResource ControlFillColorDefaultBrush}">
|
|
<BreadcrumbBar x:Name="AddressBreadcrumb"
|
|
ItemsSource="{x:Bind Pane.Breadcrumbs, Mode=OneWay}"
|
|
ItemClicked="OnBreadcrumbClicked" />
|
|
<TextBox x:Name="AddressEditor"
|
|
Visibility="Collapsed"
|
|
BorderThickness="0"
|
|
Background="Transparent"
|
|
KeyDown="OnAddressEditorKeyDown"
|
|
LostFocus="OnAddressEditorLostFocus" />
|
|
</Grid>
|
|
|
|
<AutoSuggestBox x:Name="SearchBox"
|
|
Grid.Column="5"
|
|
Width="260"
|
|
MinWidth="160"
|
|
Height="32"
|
|
VerticalAlignment="Center"
|
|
QueryIcon="Find"
|
|
PlaceholderText="搜索"
|
|
TextChanged="OnSearchTextChanged"
|
|
QuerySubmitted="OnSearchQuerySubmitted"
|
|
SuggestionChosen="OnSearchSuggestionChosen" />
|
|
</Grid>
|
|
|
|
<!-- 加载进度:不遮挡内容,只在标题下方显示一条细线 -->
|
|
<ProgressBar Grid.Row="2"
|
|
Height="2"
|
|
IsIndeterminate="True"
|
|
Visibility="{x:Bind Pane.IsLoading, Mode=OneWay, Converter={StaticResource BoolToVisibility}}" />
|
|
|
|
<!-- ═══ 内容区(左:导航窗格 / 右:文件列表) ═══ -->
|
|
<Grid Grid.Row="3">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition x:Name="SidebarColumn" Width="242" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Grid x:Name="SidebarHost" Grid.Column="0" Padding="4,0,4,4">
|
|
<TreeView x:Name="SidebarTree"
|
|
ItemsSource="{x:Bind Main.SidebarRoots, Mode=OneWay}"
|
|
SelectionMode="Single"
|
|
ItemInvoked="OnSidebarItemInvoked"
|
|
Expanding="OnSidebarExpanding"
|
|
CanDragItems="False"
|
|
CanReorderItems="False">
|
|
<TreeView.ItemTemplate>
|
|
<DataTemplate x:DataType="vm:SidebarNode">
|
|
<TreeViewItem ItemsSource="{x:Bind Children}"
|
|
IsExpanded="{x:Bind IsExpanded, Mode=TwoWay}"
|
|
ToolTipService.ToolTip="{x:Bind Location.Path}">
|
|
<StackPanel Orientation="Horizontal" Spacing="10">
|
|
<FontIcon FontFamily="{StaticResource SymbolThemeFontFamily}"
|
|
Glyph="{x:Bind Glyph}"
|
|
FontSize="14" />
|
|
<TextBlock Text="{x:Bind DisplayName}" TextTrimming="CharacterEllipsis" />
|
|
</StackPanel>
|
|
</TreeViewItem>
|
|
</DataTemplate>
|
|
</TreeView.ItemTemplate>
|
|
</TreeView>
|
|
</Grid>
|
|
|
|
<!-- 文件列表所在层用系统"图层填充",工具栏/地址栏/导航窗格保持 Mica 透出(对齐资源管理器的层次感) -->
|
|
<Grid Grid.Column="1" Background="{ThemeResource LayerFillColorDefaultBrush}">
|
|
<!-- 文件夹内容 -->
|
|
<Grid Visibility="{x:Bind Pane.IsSearchActive, Mode=OneWay, Converter={StaticResource BoolToVisibility}, ConverterParameter=invert}">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<InfoBar Grid.Row="0"
|
|
Margin="8,4"
|
|
Severity="Error"
|
|
IsOpen="{x:Bind Pane.HasError, Mode=OneWay}"
|
|
Message="{x:Bind Pane.ErrorMessage, Mode=OneWay}"
|
|
CloseButtonClick="OnDismissErrorClick" />
|
|
|
|
<!-- 详情视图列头 -->
|
|
<Grid Grid.Row="1"
|
|
Height="28"
|
|
Padding="12,0"
|
|
ColumnSpacing="8"
|
|
Visibility="{x:Bind Pane.IsDetailsView, Mode=OneWay, Converter={StaticResource BoolToVisibility}}">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" MinWidth="160" />
|
|
<ColumnDefinition Width="140" />
|
|
<ColumnDefinition Width="140" />
|
|
<ColumnDefinition Width="96" />
|
|
</Grid.ColumnDefinitions>
|
|
<Button Grid.Column="0" Style="{StaticResource ColumnHeaderButtonStyle}" Content="名称" Tag="Name" Click="OnSortClick" />
|
|
<Button Grid.Column="1" Style="{StaticResource ColumnHeaderButtonStyle}" Content="修改日期" Tag="DateModified" Click="OnSortClick" />
|
|
<Button Grid.Column="2" Style="{StaticResource ColumnHeaderButtonStyle}" Content="类型" Tag="Type" Click="OnSortClick" />
|
|
<Button Grid.Column="3" Style="{StaticResource ColumnHeaderButtonStyle}" Content="大小" Tag="Size" Click="OnSortClick"
|
|
HorizontalAlignment="Stretch" HorizontalContentAlignment="Right" />
|
|
</Grid>
|
|
|
|
<!-- 详细信息 / 列表 -->
|
|
<ListView x:Name="DetailsList"
|
|
Grid.Row="2"
|
|
Padding="0,0,0,8"
|
|
SelectionMode="Extended"
|
|
ItemsSource="{x:Bind Pane.Items, Mode=OneWay}"
|
|
SelectionChanged="OnListSelectionChanged"
|
|
ContainerContentChanging="OnDetailsContainerChanging"
|
|
DoubleTapped="OnItemDoubleTapped"
|
|
KeyDown="OnListKeyDown"
|
|
ContextRequested="OnContextRequested"
|
|
AllowDrop="True"
|
|
CanDragItems="True"
|
|
DragItemsStarting="OnDragItemsStarting"
|
|
DragOver="OnDragOver"
|
|
Drop="OnDrop"
|
|
Visibility="{x:Bind Pane.IsDetailsView, Mode=OneWay, Converter={StaticResource BoolToVisibility}}">
|
|
<ListView.ItemTemplate>
|
|
<DataTemplate x:DataType="models:ExplorerItem">
|
|
<Grid Height="30" Padding="0,0,8,0" ColumnSpacing="8">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" MinWidth="160" />
|
|
<ColumnDefinition Width="140" />
|
|
<ColumnDefinition Width="140" />
|
|
<ColumnDefinition Width="96" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Grid Grid.Column="0" ColumnSpacing="8">
|
|
<Grid.ColumnDefinitions>
|
|
<!-- 固定 28px 预留给复选框:勾选/取消勾选时文件名不会左右跳动(对齐资源管理器) -->
|
|
<ColumnDefinition Width="28" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<CheckBox Grid.Column="0"
|
|
MinWidth="0"
|
|
Margin="4,0,0,0"
|
|
HorizontalAlignment="Center"
|
|
IsChecked="{x:Bind IsSelected, Mode=TwoWay}"
|
|
Visibility="{x:Bind ShowCheckBox, Mode=OneWay, Converter={StaticResource BoolToVisibility}}" />
|
|
<Image Grid.Column="1"
|
|
Width="16"
|
|
Height="16"
|
|
Source="{x:Bind Icon, Mode=OneWay}" />
|
|
<Grid Grid.Column="2">
|
|
<TextBlock VerticalAlignment="Center"
|
|
TextTrimming="CharacterEllipsis"
|
|
Text="{x:Bind DisplayName, Mode=OneWay}"
|
|
Visibility="{x:Bind IsRenaming, Mode=OneWay, Converter={StaticResource BoolToVisibility}, ConverterParameter=invert}" />
|
|
<TextBox Tag="rename"
|
|
MinWidth="180"
|
|
Padding="4,0"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Bind RenameText, Mode=TwoWay}"
|
|
Visibility="{x:Bind IsRenaming, Mode=OneWay, Converter={StaticResource BoolToVisibility}}"
|
|
KeyDown="OnRenameBoxKeyDown"
|
|
LostFocus="OnRenameBoxLostFocus" />
|
|
</Grid>
|
|
</Grid>
|
|
|
|
<TextBlock Grid.Column="1" VerticalAlignment="Center" TextTrimming="CharacterEllipsis"
|
|
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
|
Text="{x:Bind ModifiedText, Mode=OneWay}" />
|
|
<TextBlock Grid.Column="2" VerticalAlignment="Center" TextTrimming="CharacterEllipsis"
|
|
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
|
Text="{x:Bind TypeText}" />
|
|
<TextBlock Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Right"
|
|
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
|
Text="{x:Bind SizeText}" />
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ListView.ItemTemplate>
|
|
</ListView>
|
|
|
|
<!-- 图标 / 网格视图 -->
|
|
<GridView x:Name="IconsGrid"
|
|
Grid.Row="2"
|
|
Padding="12,8,12,12"
|
|
SelectionMode="Extended"
|
|
ItemsSource="{x:Bind Pane.Items, Mode=OneWay}"
|
|
SelectionChanged="OnListSelectionChanged"
|
|
ContainerContentChanging="OnIconsContainerChanging"
|
|
DoubleTapped="OnItemDoubleTapped"
|
|
KeyDown="OnListKeyDown"
|
|
ContextRequested="OnContextRequested"
|
|
AllowDrop="True"
|
|
CanDragItems="True"
|
|
DragItemsStarting="OnDragItemsStarting"
|
|
DragOver="OnDragOver"
|
|
Drop="OnDrop"
|
|
Visibility="{x:Bind Pane.IsIconsView, Mode=OneWay, Converter={StaticResource BoolToVisibility}}">
|
|
<GridView.ItemTemplate>
|
|
<DataTemplate x:DataType="models:ExplorerItem">
|
|
<Grid Padding="4" CornerRadius="4">
|
|
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" Spacing="6">
|
|
<Image Width="{x:Bind IconSize, Mode=OneWay}"
|
|
Height="{x:Bind IconSize, Mode=OneWay}"
|
|
HorizontalAlignment="Center"
|
|
Source="{x:Bind Icon, Mode=OneWay}" />
|
|
<TextBlock Text="{x:Bind DisplayName, Mode=OneWay}"
|
|
TextWrapping="Wrap"
|
|
MaxLines="2"
|
|
TextAlignment="Center"
|
|
TextTrimming="CharacterEllipsis"
|
|
Visibility="{x:Bind IsRenaming, Mode=OneWay, Converter={StaticResource BoolToVisibility}, ConverterParameter=invert}" />
|
|
<TextBox Tag="rename"
|
|
MinWidth="120"
|
|
TextAlignment="Center"
|
|
Text="{x:Bind RenameText, Mode=TwoWay}"
|
|
Visibility="{x:Bind IsRenaming, Mode=OneWay, Converter={StaticResource BoolToVisibility}}"
|
|
KeyDown="OnRenameBoxKeyDown"
|
|
LostFocus="OnRenameBoxLostFocus" />
|
|
</StackPanel>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</GridView.ItemTemplate>
|
|
</GridView>
|
|
|
|
<!-- 空文件夹 / 提示 -->
|
|
<TextBlock Grid.Row="2"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
Margin="24"
|
|
TextAlignment="Center"
|
|
Style="{StaticResource PaneHintTextStyle}"
|
|
Text="{x:Bind Pane.EmptyMessage, Mode=OneWay}"
|
|
Visibility="{x:Bind Pane.EmptyMessage, Mode=OneWay, Converter={StaticResource StringToVisibility}}" />
|
|
</Grid>
|
|
|
|
<!-- 搜索结果 -->
|
|
<Grid Visibility="{x:Bind Pane.IsSearchActive, Mode=OneWay, Converter={StaticResource BoolToVisibility}}">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<StackPanel Grid.Row="0" Margin="12,8" Spacing="4">
|
|
<TextBlock Style="{StaticResource BodyStrongTextBlockStyle}" Text="{x:Bind Pane.SearchStatusText, Mode=OneWay}" />
|
|
<ProgressBar IsIndeterminate="True"
|
|
Height="2"
|
|
Visibility="{x:Bind Pane.IsSearching, Mode=OneWay, Converter={StaticResource BoolToVisibility}}" />
|
|
</StackPanel>
|
|
|
|
<InfoBar Grid.Row="1"
|
|
Margin="8,0,8,4"
|
|
Severity="Informational"
|
|
IsOpen="{x:Bind Pane.HasNote, Mode=OneWay}"
|
|
Message="{x:Bind Pane.NoteMessage, Mode=OneWay}" />
|
|
|
|
<ListView Grid.Row="2"
|
|
Padding="0,0,0,8"
|
|
SelectionMode="Extended"
|
|
ItemsSource="{x:Bind Pane.SearchResults, Mode=OneWay}"
|
|
ContainerContentChanging="OnSearchContainerChanging"
|
|
DoubleTapped="OnSearchResultDoubleTapped"
|
|
ContextRequested="OnSearchResultContextRequested">
|
|
<ListView.ItemTemplate>
|
|
<DataTemplate x:DataType="vm:SearchResultItem">
|
|
<Grid Height="30" Padding="12,0" ColumnSpacing="8">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" MinWidth="160" />
|
|
<ColumnDefinition Width="*" MinWidth="180" />
|
|
<ColumnDefinition Width="140" />
|
|
<ColumnDefinition Width="96" />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid Grid.Column="0" ColumnSpacing="8">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<Image Grid.Column="0" Width="16" Height="16" Source="{x:Bind Icon, Mode=OneWay}" />
|
|
<TextBlock Grid.Column="1" VerticalAlignment="Center" TextTrimming="CharacterEllipsis" Text="{x:Bind Name}" />
|
|
</Grid>
|
|
<TextBlock Grid.Column="1" VerticalAlignment="Center" TextTrimming="CharacterEllipsis"
|
|
Foreground="{ThemeResource TextFillColorSecondaryBrush}" Text="{x:Bind Directory}" />
|
|
<TextBlock Grid.Column="2" VerticalAlignment="Center"
|
|
Foreground="{ThemeResource TextFillColorSecondaryBrush}" Text="{x:Bind ModifiedText}" />
|
|
<TextBlock Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Right"
|
|
Foreground="{ThemeResource TextFillColorSecondaryBrush}" Text="{x:Bind SizeText}" />
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ListView.ItemTemplate>
|
|
</ListView>
|
|
</Grid>
|
|
</Grid>
|
|
</Grid>
|
|
|
|
<!-- ═══ 状态栏 ═══ -->
|
|
<Grid Grid.Row="4" Height="26" Padding="12,0" ColumnSpacing="12">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<TextBlock Grid.Column="0"
|
|
Style="{StaticResource StatusBarTextStyle}"
|
|
TextTrimming="CharacterEllipsis"
|
|
Text="{x:Bind Pane.StatusText, Mode=OneWay}" />
|
|
|
|
<StackPanel Grid.Column="1" Orientation="Horizontal" Spacing="8">
|
|
<TextBlock x:Name="IndexChip"
|
|
Style="{StaticResource StatusBarTextStyle}"
|
|
Text="{x:Bind Main.IndexSummary, Mode=OneWay}"
|
|
ToolTipService.ToolTip="点击建立/重建文件索引(Everything 级搜索的前提)"
|
|
Tapped="OnIndexChipTapped" />
|
|
<Button Style="{StaticResource ToolbarButtonStyle}" Width="28" Height="22"
|
|
ToolTipService.ToolTip="显示隐藏的项目" Click="OnToggleHiddenClick">
|
|
<FontIcon Glyph="{StaticResource GlyphHidden}" FontSize="12" />
|
|
</Button>
|
|
<Button Style="{StaticResource ToolbarButtonStyle}" Width="28" Height="22"
|
|
ToolTipService.ToolTip="切换视图方式" Click="OnCycleViewClick">
|
|
<FontIcon Glyph="{StaticResource GlyphView}" FontSize="12" />
|
|
</Button>
|
|
</StackPanel>
|
|
|
|
<Button Grid.Column="2"
|
|
Style="{StaticResource ToolbarButtonStyle}"
|
|
Height="22"
|
|
Width="Auto"
|
|
Padding="8,0"
|
|
ToolTipService.ToolTip="文件操作队列"
|
|
Click="OnOpenQueueClick">
|
|
<StackPanel Orientation="Horizontal" Spacing="6">
|
|
<FontIcon Glyph="{StaticResource GlyphQueue}" FontSize="12" />
|
|
<TextBlock Style="{StaticResource StatusBarTextStyle}" Text="{x:Bind Main.ActiveJobCount, Mode=OneWay}" />
|
|
</StackPanel>
|
|
</Button>
|
|
</Grid>
|
|
</Grid>
|
|
</UserControl>
|