<Page x:Class="XFEToolBox.Client.Views.Pages.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:gif="http://wpfanimatedgif.codeplex.com"
xmlns:controls="clr-namespace:XFEToolBox.WpfCore.Controls;assembly=XFEToolBox.WpfCore"
Title="MainPage">
<Page.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
<Style x:Key="DashboardCardStyle" TargetType="Button" BasedOn="{StaticResource ToolBoxButtonStyle}">
<Setter Property="Height" Value="80"/>
<Setter Property="Margin" Value="4"/>
<Setter Property="Padding" Value="12"/>
<Setter Property="Background" Value="#FAFAFE"/>
<Setter Property="BorderBrush" Value="#E2E2EF"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="controls:ButtonAssist.CornerRadius" Value="14"/>
<Setter Property="controls:ButtonAssist.HoverBackground" Value="#F2F2FC"/>
<Setter Property="controls:ButtonAssist.HoverBorderBrush" Value="#BEBEEB"/>
</Style>
<Style x:Key="SectionTitleStyle" TargetType="TextBlock">
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontSize" Value="15"/>
<Setter Property="FontWeight" Value="SemiBold"/>
</Style>
<Style x:Key="SectionHintStyle" TargetType="TextBlock">
<Setter Property="Foreground" Value="#C9FFFFFF"/>
<Setter Property="FontSize" Value="9.5"/>
<Setter Property="Margin" Value="0,3,0,0"/>
</Style>
</Page.Resources>
<controls:SmoothScrollViewer Padding="14,8,12,14">
<StackPanel>
<Border Margin="3,0,3,8" Padding="18" CornerRadius="18" BorderBrush="#65FFFFFF" BorderThickness="1">
<Border.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="#785C5ED6"/>
<GradientStop Color="#4C7354CF" Offset="1"/>
</LinearGradientBrush>
</Border.Background>
<Grid>
<Grid.RowDefinitions><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/></Grid.RowDefinitions>
<Grid>
<StackPanel>
<TextBlock Text="今天想做什么?" Foreground="White" FontSize="20" FontWeight="Bold"/>
<TextBlock Text="搜索并启动工具、软件、项目或页面" Foreground="#D8FFFFFF" FontSize="10" Margin="0,5,0,0"/>
</StackPanel>
<Border HorizontalAlignment="Right" VerticalAlignment="Center" Padding="9,4" Background="#22FFFFFF" CornerRadius="8">
<TextBlock Text="{Binding LauncherHotkeyHint}" Foreground="#EAFFFFFF" FontSize="9"/>
</Border>
</Grid>
<Grid Grid.Row="1" Margin="0,15,0,0">
<Grid.ColumnDefinitions><ColumnDefinition Width="*"/><ColumnDefinition Width="Auto"/></Grid.ColumnDefinitions>
<controls:TextEditor x:Name="HomeSearchBox" Height="42" Padding="13,0" FontSize="12"
HintText="输入名称、作者、分类或标签…" KeyDown="HomeSearchBox_KeyDown"/>
<Button Grid.Column="1" Content="打开命令面板" Height="42" Margin="8,0,0,0"
controls:ButtonAssist.IsPrimary="True" Click="OpenCommandPalette_Click"/>
</Grid>
</Grid>
</Border>
<StackPanel Margin="3,10,3,0" Visibility="{Binding QuickAccessVisibility}">
<Grid Margin="4,0,4,7">
<StackPanel><TextBlock Text="快速访问" Style="{StaticResource SectionTitleStyle}"/><TextBlock Text="固定项优先,其次是最近使用和常用入口" Style="{StaticResource SectionHintStyle}"/></StackPanel>
<Button Content="管理" HorizontalAlignment="Right" VerticalAlignment="Center" Height="28" Click="ManagePinnedItems_Click"/>
</Grid>
<ItemsControl ItemsSource="{Binding QuickAccessItems}">
<ItemsControl.ItemsPanel><ItemsPanelTemplate><UniformGrid Columns="2"/></ItemsPanelTemplate></ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Button Style="{StaticResource DashboardCardStyle}" CommandParameter="{Binding}" Click="LauncherItem_Click" IsEnabled="{Binding IsEnabled}">
<Grid>
<Grid.ColumnDefinitions><ColumnDefinition Width="46"/><ColumnDefinition Width="*"/><ColumnDefinition Width="30"/></Grid.ColumnDefinitions>
<Border Width="38" Height="38" CornerRadius="12" Background="#EEEEFB" HorizontalAlignment="Left" VerticalAlignment="Center">
<Image gif:ImageBehavior.AnimatedSource="{Binding IconSource}" gif:ImageBehavior.RepeatBehavior="Forever" Width="24" Height="24" Stretch="Uniform"/>
</Border>
<StackPanel Grid.Column="1" VerticalAlignment="Center">
<TextBlock Text="{Binding Title}" Foreground="#414156" FontSize="12" FontWeight="SemiBold" TextTrimming="CharacterEllipsis"/>
<TextBlock Text="{Binding Subtitle}" Foreground="#8C8C9D" FontSize="9" Margin="0,4,0,0" TextTrimming="CharacterEllipsis"/>
</StackPanel>
<TextBlock Grid.Column="2" Text="{Binding KindText}" Foreground="#7777C8" FontSize="8.5" HorizontalAlignment="Right" VerticalAlignment="Bottom"/>
</Grid>
</Button>
<Button Content="{Binding PinGlyph}" Width="24" Height="24" MinWidth="24" Padding="0" Margin="0,9,9,0"
HorizontalAlignment="Right" VerticalAlignment="Top" ToolTip="固定或取消固定"
CommandParameter="{Binding}" Click="TogglePin_Click"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
<StackPanel Margin="3,17,3,0">
<Grid Margin="4,0,4,7"><StackPanel><TextBlock Text="教程与动态" Style="{StaticResource SectionTitleStyle}"/><TextBlock Text="网络内容延迟加载,不影响工作台使用" Style="{StaticResource SectionHintStyle}"/></StackPanel></Grid>
<controls:Carousel x:Name="mainCarousel" Height="220" HorizontalAlignment="Stretch" IsLoading="True"
StatusMessage="正在获取教程内容…" Interval="0:0:8" RetryRequested="MainCarousel_RetryRequested"/>
</StackPanel>
<StackPanel Margin="3,17,3,0" Visibility="{Binding ActivitySectionVisibility}">
<Grid Margin="4,0,4,7">
<StackPanel><TextBlock Text="活动中心" Style="{StaticResource SectionTitleStyle}"/><TextBlock Text="下载、构建和发布状态会集中显示在这里" Style="{StaticResource SectionHintStyle}"/></StackPanel>
<TextBlock Text="{Binding ActivityCountText}" Foreground="#E3FFFFFF" FontSize="9.5" HorizontalAlignment="Right" VerticalAlignment="Center"/>
</Grid>
<ItemsControl ItemsSource="{Binding ActivityItems}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border Margin="4,3" Padding="13,10" Background="#F9F9FD" BorderBrush="#E2E2ED" BorderThickness="1" CornerRadius="13">
<Grid>
<Grid.ColumnDefinitions><ColumnDefinition Width="*"/><ColumnDefinition Width="Auto"/></Grid.ColumnDefinitions>
<StackPanel>
<TextBlock Text="{Binding Title}" Foreground="#45455A" FontSize="11" FontWeight="SemiBold"/>
<TextBlock Text="{Binding Message}" Foreground="#8B8B9D" FontSize="9" Margin="0,4,0,5" TextTrimming="CharacterEllipsis"/>
<ProgressBar Height="4" Minimum="0" Maximum="100" Value="{Binding Progress}"/>
</StackPanel>
<StackPanel Grid.Column="1" Margin="14,0,0,0" VerticalAlignment="Center">
<TextBlock Text="{Binding ProgressText}" Foreground="#7373C7" FontSize="9.5" HorizontalAlignment="Right"/>
<Button Content="取消" Margin="0,5,0,0" Padding="8,2" Command="{Binding CancelCommand}"
Visibility="{Binding CanCancel, Converter={StaticResource BooleanToVisibilityConverter}}"/>
</StackPanel>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
<StackPanel Margin="3,17,3,0">
<Grid Margin="4,0,4,7">
<StackPanel><TextBlock Text="继续工作" Style="{StaticResource SectionTitleStyle}"/><TextBlock Text="工具、软件和 Code Studio 项目" Style="{StaticResource SectionHintStyle}"/></StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
<Button Content="清空" Visibility="{Binding RecentItemsVisibility}" Margin="0,0,7,0" Click="ClearRecentUsage_Click"/>
<TextBlock Text="{Binding RecentUsageCountText}" Foreground="#E2FFFFFF" FontSize="9.5" VerticalAlignment="Center"/>
</StackPanel>
</Grid>
<Border Background="#F8F8FD" BorderBrush="#65FFFFFF" BorderThickness="1" CornerRadius="17" Padding="7" MinHeight="92">
<Grid>
<ItemsControl ItemsSource="{Binding RecentItems}" Visibility="{Binding RecentItemsVisibility}">
<ItemsControl.ItemsPanel><ItemsPanelTemplate><UniformGrid Columns="2"/></ItemsPanelTemplate></ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Button Style="{StaticResource DashboardCardStyle}" CommandParameter="{Binding}" Click="RecentItem_Click" IsEnabled="{Binding IsEnabled}">
<Grid>
<Grid.ColumnDefinitions><ColumnDefinition Width="46"/><ColumnDefinition Width="*"/><ColumnDefinition Width="Auto"/></Grid.ColumnDefinitions>
<Border Width="38" Height="38" CornerRadius="12" Background="#EEEEFB"><Image gif:ImageBehavior.AnimatedSource="{Binding IconSource}" gif:ImageBehavior.RepeatBehavior="Forever" Width="24" Height="24"/></Border>
<StackPanel Grid.Column="1" Margin="9,0" VerticalAlignment="Center">
<TextBlock Text="{Binding Name}" Foreground="#414156" FontSize="11.5" FontWeight="SemiBold" TextTrimming="CharacterEllipsis"/>
<TextBlock Text="{Binding Detail}" Foreground="#9292A3" FontSize="8.8" Margin="0,4,0,0" TextTrimming="CharacterEllipsis"/>
</StackPanel>
<TextBlock Grid.Column="2" Text="{Binding LastUsedText}" Foreground="#7D7DCA" FontSize="8.5" VerticalAlignment="Bottom"/>
</Grid>
</Button>
<Button Content="×" Width="22" Height="22" MinWidth="22" Padding="0" Margin="0,8,8,0" HorizontalAlignment="Right" VerticalAlignment="Top" CommandParameter="{Binding}" Click="RemoveRecentItem_Click"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<Grid Visibility="{Binding RecentEmptyVisibility}" Margin="10">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="还没有最近使用记录" Foreground="#55556A" FontSize="11.5" FontWeight="SemiBold" HorizontalAlignment="Center"/>
<TextBlock Text="打开工具、软件或工具项目后会显示在这里" Foreground="#9999AA" FontSize="9.5" Margin="0,4,0,8"/>
<Button Content="前往工具箱" Click="OpenToolBox_Click"/>
</StackPanel>
</Grid>
</Grid>
</Border>
</StackPanel>
<StackPanel Margin="3,17,3,0" Visibility="{Binding LatestToolsVisibility}">
<Grid Margin="4,0,4,7"><StackPanel><TextBlock Text="最近更新的工具" Style="{StaticResource SectionTitleStyle}"/><TextBlock Text="根据本地工具目录缓存展示" Style="{StaticResource SectionHintStyle}"/></StackPanel></Grid>
<ItemsControl ItemsSource="{Binding RecentlyUpdatedTools}">
<ItemsControl.ItemsPanel><ItemsPanelTemplate><UniformGrid Columns="2"/></ItemsPanelTemplate></ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Style="{StaticResource DashboardCardStyle}" CommandParameter="{Binding}" Click="LauncherItem_Click">
<Grid>
<Grid.ColumnDefinitions><ColumnDefinition Width="45"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions>
<Border Width="37" Height="37" CornerRadius="11" Background="#EEEEFB"><Image Source="{Binding IconSource}" Width="23" Height="23"/></Border>
<StackPanel Grid.Column="1" Margin="9,0" VerticalAlignment="Center"><TextBlock Text="{Binding Title}" Foreground="#414156" FontSize="11.5" FontWeight="SemiBold"/><TextBlock Text="{Binding Subtitle}" Foreground="#9292A3" FontSize="8.8" Margin="0,4,0,0" TextTrimming="CharacterEllipsis"/></StackPanel>
</Grid>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
<Border Margin="7,17,7,5" Padding="13,10" Background="#25FFFFFF" BorderBrush="#45FFFFFF" BorderThickness="1" CornerRadius="13" Visibility="{Binding AdminServerPanelVisibility}" MouseLeftButtonUp="AdminServerPanel_MouseLeftButtonUp">
<Grid>
<StackPanel Orientation="Horizontal"><Ellipse Width="8" Height="8" Fill="#75F0A6" Margin="0,0,8,0"/><TextBlock Text="{Binding AdminServerStatus}" Foreground="White" FontSize="11" FontWeight="SemiBold"/></StackPanel>
<TextBlock Text="{Binding AdminUpdatedText}" Foreground="#D3FFFFFF" FontSize="9" HorizontalAlignment="Right"/>
</Grid>
</Border>
</StackPanel>
</controls:SmoothScrollViewer>
</Page>
<Page x:Class="XFEToolBox.Client.Views.Pages.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:gif="http://wpfanimatedgif.codeplex.com"
xmlns:controls="clr-namespace:XFEToolBox.WpfCore.Controls;assembly=XFEToolBox.WpfCore"
Title="MainPage">
<Page.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
<Style x:Key="DashboardCardStyle" TargetType="Button" BasedOn="{StaticResource ToolBoxButtonStyle}">
<Setter Property="Height" Value="80"/>
<Setter Property="Margin" Value="4"/>
<Setter Property="Padding" Value="12"/>
<Setter Property="Background" Value="#FAFAFE"/>
<Setter Property="BorderBrush" Value="#E2E2EF"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="controls:ButtonAssist.CornerRadius" Value="14"/>
<Setter Property="controls:ButtonAssist.HoverBackground" Value="#F2F2FC"/>
<Setter Property="controls:ButtonAssist.HoverBorderBrush" Value="#BEBEEB"/>
</Style>
<Style x:Key="SectionTitleStyle" TargetType="TextBlock">
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontSize" Value="15"/>
<Setter Property="FontWeight" Value="SemiBold"/>
</Style>
<Style x:Key="SectionHintStyle" TargetType="TextBlock">
<Setter Property="Foreground" Value="#C9FFFFFF"/>
<Setter Property="FontSize" Value="9.5"/>
<Setter Property="Margin" Value="0,3,0,0"/>
</Style>
</Page.Resources>
<controls:SmoothScrollViewer Padding="14,8,12,14">
<StackPanel>
<Border Margin="3,0,3,8" Padding="18" CornerRadius="18" BorderBrush="#65FFFFFF" BorderThickness="1">
<Border.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="#785C5ED6"/>
<GradientStop Color="#4C7354CF" Offset="1"/>
</LinearGradientBrush>
</Border.Background>
<Grid>
<Grid.RowDefinitions><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/></Grid.RowDefinitions>
<Grid>
<StackPanel>
<TextBlock Text="今天想做什么?" Foreground="White" FontSize="20" FontWeight="Bold"/>
<TextBlock Text="搜索并启动工具、软件、项目或页面" Foreground="#D8FFFFFF" FontSize="10" Margin="0,5,0,0"/>
</StackPanel>
<Border HorizontalAlignment="Right" VerticalAlignment="Center" Padding="9,4" Background="#22FFFFFF" CornerRadius="8">
<TextBlock Text="{Binding LauncherHotkeyHint}" Foreground="#EAFFFFFF" FontSize="9"/>
</Border>
</Grid>
<Grid Grid.Row="1" Margin="0,15,0,0">
<Grid.ColumnDefinitions><ColumnDefinition Width="*"/><ColumnDefinition Width="Auto"/></Grid.ColumnDefinitions>
<controls:TextEditor x:Name="HomeSearchBox" Height="42" Padding="13,0" FontSize="12"
HintText="输入名称、作者、分类或标签…" KeyDown="HomeSearchBox_KeyDown"/>
<Button Grid.Column="1" Content="打开命令面板" Height="42" Margin="8,0,0,0"
controls:ButtonAssist.IsPrimary="True" Click="OpenCommandPalette_Click"/>
</Grid>
</Grid>
</Border>
<StackPanel Margin="3,10,3,0" Visibility="{Binding QuickAccessVisibility}">
<Grid Margin="4,0,4,7">
<StackPanel><TextBlock Text="快速访问" Style="{StaticResource SectionTitleStyle}"/><TextBlock Text="固定项优先,其次是最近使用和常用入口" Style="{StaticResource SectionHintStyle}"/></StackPanel>
<Button Content="管理" HorizontalAlignment="Right" VerticalAlignment="Center" Height="28" Click="ManagePinnedItems_Click"/>
</Grid>
<ItemsControl ItemsSource="{Binding QuickAccessItems}">
<ItemsControl.ItemsPanel><ItemsPanelTemplate><UniformGrid Columns="2"/></ItemsPanelTemplate></ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Button Style="{StaticResource DashboardCardStyle}" CommandParameter="{Binding}" Click="LauncherItem_Click" IsEnabled="{Binding IsEnabled}">
<Grid>
<Grid.ColumnDefinitions><ColumnDefinition Width="46"/><ColumnDefinition Width="*"/><ColumnDefinition Width="30"/></Grid.ColumnDefinitions>
<Border Width="38" Height="38" CornerRadius="12" Background="#EEEEFB" HorizontalAlignment="Left" VerticalAlignment="Center">
<Image gif:ImageBehavior.AnimatedSource="{Binding IconSource}" gif:ImageBehavior.RepeatBehavior="Forever" Width="24" Height="24" Stretch="Uniform"/>
</Border>
<StackPanel Grid.Column="1" VerticalAlignment="Center">
<TextBlock Text="{Binding Title}" Foreground="#414156" FontSize="12" FontWeight="SemiBold" TextTrimming="CharacterEllipsis"/>
<TextBlock Text="{Binding Subtitle}" Foreground="#8C8C9D" FontSize="9" Margin="0,4,0,0" TextTrimming="CharacterEllipsis"/>
</StackPanel>
<TextBlock Grid.Column="2" Text="{Binding KindText}" Foreground="#7777C8" FontSize="8.5" HorizontalAlignment="Right" VerticalAlignment="Bottom"/>
</Grid>
</Button>
<Button Content="{Binding PinGlyph}" Width="24" Height="24" MinWidth="24" Padding="0" Margin="0,9,9,0"
HorizontalAlignment="Right" VerticalAlignment="Top" ToolTip="固定或取消固定"
CommandParameter="{Binding}" Click="TogglePin_Click"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
<StackPanel Margin="3,17,3,0">
<Grid Margin="4,0,4,7"><StackPanel><TextBlock Text="教程与动态" Style="{StaticResource SectionTitleStyle}"/><TextBlock Text="网络内容延迟加载,不影响工作台使用" Style="{StaticResource SectionHintStyle}"/></StackPanel></Grid>
<controls:Carousel x:Name="mainCarousel" Height="220" HorizontalAlignment="Stretch" IsLoading="True"
StatusMessage="正在获取教程内容…" Interval="0:0:8" RetryRequested="MainCarousel_RetryRequested"/>
</StackPanel>
<StackPanel Margin="3,17,3,0" Visibility="{Binding ActivitySectionVisibility}">
<Grid Margin="4,0,4,7">
<StackPanel><TextBlock Text="活动中心" Style="{StaticResource SectionTitleStyle}"/><TextBlock Text="下载、构建和发布状态会集中显示在这里" Style="{StaticResource SectionHintStyle}"/></StackPanel>
<TextBlock Text="{Binding ActivityCountText}" Foreground="#E3FFFFFF" FontSize="9.5" HorizontalAlignment="Right" VerticalAlignment="Center"/>
</Grid>
<ItemsControl ItemsSource="{Binding ActivityItems}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border Margin="4,3" Padding="13,10" Background="#F9F9FD" BorderBrush="#E2E2ED" BorderThickness="1" CornerRadius="13">
<Grid>
<Grid.ColumnDefinitions><ColumnDefinition Width="*"/><ColumnDefinition Width="Auto"/></Grid.ColumnDefinitions>
<StackPanel>
<TextBlock Text="{Binding Title}" Foreground="#45455A" FontSize="11" FontWeight="SemiBold"/>
<TextBlock Text="{Binding Message}" Foreground="#8B8B9D" FontSize="9" Margin="0,4,0,5" TextTrimming="CharacterEllipsis"/>
<ProgressBar Height="4" Minimum="0" Maximum="100" Value="{Binding Progress}"/>
</StackPanel>
<StackPanel Grid.Column="1" Margin="14,0,0,0" VerticalAlignment="Center">
<TextBlock Text="{Binding ProgressText}" Foreground="#7373C7" FontSize="9.5" HorizontalAlignment="Right"/>
<Button Content="取消" Margin="0,5,0,0" Padding="8,2" Command="{Binding CancelCommand}"
Visibility="{Binding CanCancel, Converter={StaticResource BooleanToVisibilityConverter}}"/>
</StackPanel>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
<StackPanel Margin="3,17,3,0">
<Grid Margin="4,0,4,7">
<StackPanel><TextBlock Text="继续工作" Style="{StaticResource SectionTitleStyle}"/><TextBlock Text="工具、软件和 Code Studio 项目" Style="{StaticResource SectionHintStyle}"/></StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
<Button Content="清空" Visibility="{Binding RecentItemsVisibility}" Margin="0,0,7,0" Click="ClearRecentUsage_Click"/>
<TextBlock Text="{Binding RecentUsageCountText}" Foreground="#E2FFFFFF" FontSize="9.5" VerticalAlignment="Center"/>
</StackPanel>
</Grid>
<Border Background="#F8F8FD" BorderBrush="#65FFFFFF" BorderThickness="1" CornerRadius="17" Padding="7" MinHeight="92">
<Grid>
<ItemsControl ItemsSource="{Binding RecentItems}" Visibility="{Binding RecentItemsVisibility}">
<ItemsControl.ItemsPanel><ItemsPanelTemplate><UniformGrid Columns="2"/></ItemsPanelTemplate></ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Button Style="{StaticResource DashboardCardStyle}" CommandParameter="{Binding}" Click="RecentItem_Click" IsEnabled="{Binding IsEnabled}">
<Grid>
<Grid.ColumnDefinitions><ColumnDefinition Width="46"/><ColumnDefinition Width="*"/><ColumnDefinition Width="Auto"/></Grid.ColumnDefinitions>
<Border Width="38" Height="38" CornerRadius="12" Background="#EEEEFB"><Image gif:ImageBehavior.AnimatedSource="{Binding IconSource}" gif:ImageBehavior.RepeatBehavior="Forever" Width="24" Height="24"/></Border>
<StackPanel Grid.Column="1" Margin="9,0" VerticalAlignment="Center">
<TextBlock Text="{Binding Name}" Foreground="#414156" FontSize="11.5" FontWeight="SemiBold" TextTrimming="CharacterEllipsis"/>
<TextBlock Text="{Binding Detail}" Foreground="#9292A3" FontSize="8.8" Margin="0,4,0,0" TextTrimming="CharacterEllipsis"/>
</StackPanel>
<TextBlock Grid.Column="2" Text="{Binding LastUsedText}" Foreground="#7D7DCA" FontSize="8.5" VerticalAlignment="Bottom"/>
</Grid>
</Button>
<Button Content="×" Width="22" Height="22" MinWidth="22" Padding="0" Margin="0,8,8,0" HorizontalAlignment="Right" VerticalAlignment="Top" CommandParameter="{Binding}" Click="RemoveRecentItem_Click"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<Grid Visibility="{Binding RecentEmptyVisibility}" Margin="10">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="还没有最近使用记录" Foreground="#55556A" FontSize="11.5" FontWeight="SemiBold" HorizontalAlignment="Center"/>
<TextBlock Text="打开工具、软件或工具项目后会显示在这里" Foreground="#9999AA" FontSize="9.5" Margin="0,4,0,8"/>
<Button Content="前往工具箱" Click="OpenToolBox_Click"/>
</StackPanel>
</Grid>
</Grid>
</Border>
</StackPanel>
<StackPanel Margin="3,17,3,0" Visibility="{Binding LatestToolsVisibility}">
<Grid Margin="4,0,4,7"><StackPanel><TextBlock Text="最近更新的工具" Style="{StaticResource SectionTitleStyle}"/><TextBlock Text="根据本地工具目录缓存展示" Style="{StaticResource SectionHintStyle}"/></StackPanel></Grid>
<ItemsControl ItemsSource="{Binding RecentlyUpdatedTools}">
<ItemsControl.ItemsPanel><ItemsPanelTemplate><UniformGrid Columns="2"/></ItemsPanelTemplate></ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Style="{StaticResource DashboardCardStyle}" CommandParameter="{Binding}" Click="LauncherItem_Click">
<Grid>
<Grid.ColumnDefinitions><ColumnDefinition Width="45"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions>
<Border Width="37" Height="37" CornerRadius="11" Background="#EEEEFB"><Image Source="{Binding IconSource}" Width="23" Height="23"/></Border>
<StackPanel Grid.Column="1" Margin="9,0" VerticalAlignment="Center"><TextBlock Text="{Binding Title}" Foreground="#414156" FontSize="11.5" FontWeight="SemiBold"/><TextBlock Text="{Binding Subtitle}" Foreground="#9292A3" FontSize="8.8" Margin="0,4,0,0" TextTrimming="CharacterEllipsis"/></StackPanel>
</Grid>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
<Border Margin="7,17,7,5" Padding="13,10" Background="#25FFFFFF" BorderBrush="#45FFFFFF" BorderThickness="1" CornerRadius="13" Visibility="{Binding AdminServerPanelVisibility}" MouseLeftButtonUp="AdminServerPanel_MouseLeftButtonUp">
<Grid>
<StackPanel Orientation="Horizontal"><Ellipse Width="8" Height="8" Fill="#75F0A6" Margin="0,0,8,0"/><TextBlock Text="{Binding AdminServerStatus}" Foreground="White" FontSize="11" FontWeight="SemiBold"/></StackPanel>
<TextBlock Text="{Binding AdminUpdatedText}" Foreground="#D3FFFFFF" FontSize="9" HorizontalAlignment="Right"/>
</Grid>
</Border>
</StackPanel>
</controls:SmoothScrollViewer>
</Page>