Files
better-genshin-impact/BetterGenshinImpact/View/Windows/ScriptRepoWindow.xaml
辉鸭蛋 e4aedd9497 feat(ui): 为多个窗口启用自动翻译拦截器
为 MapLabelSearchWindow、ArtifactOcrDialog、PromptDialog 等 14 个窗口添加了 AutoTranslateInterceptor.EnableAutoTranslate 属性,以启用自动翻译拦截功能。
2026-01-27 04:21:49 +08:00

326 lines
18 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<ui:FluentWindow x:Class="BetterGenshinImpact.View.Windows.ScriptRepoWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:BetterGenshinImpact.View.Windows"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
xmlns:vio="http://schemas.lepo.co/wpfui/2022/xaml/violeta"
xmlns:behavior="clr-namespace:BetterGenshinImpact.View.Behavior"
Title="脚本仓库"
Width="410"
MinWidth="360"
MinHeight="50"
ResizeMode="NoResize"
Background="#202020"
ExtendsContentIntoTitleBar="True"
behavior:AutoTranslateInterceptor.EnableAutoTranslate="True"
FontFamily="{DynamicResource TextThemeFontFamily}"
SizeToContent="Height"
WindowBackdropType="Auto"
WindowStartupLocation="CenterOwner"
mc:Ignorable="d">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="48" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!-- 标题栏 -->
<ui:TitleBar Grid.Row="0"
Title="{Binding Title}"
ShowMaximize="False"
ShowMinimize="False">
<ui:TitleBar.Icon>
<ui:ImageIcon Source="pack://application:,,,/Resources/Images/logo.png" />
</ui:TitleBar.Icon>
</ui:TitleBar>
<!-- 主内容区域 -->
<Grid Grid.Row="1" Margin="12,0,12,12">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!-- 标签页区域 -->
<Border Grid.Row="0"
Background="{ui:ThemeResource CardBackgroundFillColorDefaultBrush}"
BorderBrush="{ui:ThemeResource CardStrokeColorDefaultBrush}"
BorderThickness="1,1,1,1"
CornerRadius="8">
<TabControl Margin="12">
<!-- Git仓库标签页 -->
<TabItem Width="110">
<TabItem.Header>
<StackPanel Orientation="Horizontal">
<ui:SymbolIcon Margin="0,0,6,0" Symbol="BranchFork24" />
<TextBlock Text="Git一键更新" />
</StackPanel>
</TabItem.Header>
<Grid Margin="0,12,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!-- 第一行:更新渠道 -->
<Grid Grid.Row="0" Margin="0,0,0,12">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ui:TextBlock Grid.Column="0"
Margin="0,0,8,0"
VerticalAlignment="Center"
Foreground="{ui:ThemeResource TextFillColorPrimaryBrush}"
Text="更新渠道:" />
<ComboBox Grid.Column="1"
MinWidth="160"
VerticalAlignment="Center"
DisplayMemberPath="Name"
ItemsSource="{Binding RepoChannels}"
SelectedItem="{Binding SelectedRepoChannel}"
IsTextSearchEnabled="False" />
</Grid>
<!-- 第二行脚本仓库URL -->
<Grid Grid.Row="1" Margin="0,0,0,12">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ui:TextBlock Grid.Column="0"
Margin="0,0,8,0"
VerticalAlignment="Center"
Foreground="{ui:ThemeResource TextFillColorPrimaryBrush}"
Text="仓库地址:" />
<!-- 只读模式:显示文本 -->
<Border Grid.Column="1"
MinWidth="160"
MinHeight="32"
Background="{ui:ThemeResource ControlFillColorDefaultBrush}"
BorderBrush="{ui:ThemeResource ControlStrokeColorDefaultBrush}"
BorderThickness="1"
CornerRadius="4"
Visibility="{Binding IsRepoUrlReadOnly, Converter={StaticResource BooleanToVisibilityConverter}}">
<ScrollViewer VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled"
Padding="8,6">
<ui:TextBlock Foreground="{ui:ThemeResource TextFillColorSecondaryBrush}"
Text="{Binding CurrentRepoUrl}"
TextWrapping="Wrap" />
</ScrollViewer>
</Border>
<!-- 编辑模式:可输入 -->
<TextBox Grid.Column="1"
MinWidth="160"
VerticalAlignment="Center"
Text="{Binding Config.CustomRepoUrl, UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding IsRepoUrlReadOnly, Converter={StaticResource BooleanToVisibilityRevertConverter}}" />
</Grid>
<!-- 第三行Git 用户名 -->
<Grid Grid.Row="2"
Margin="0,0,0,12"
Visibility="{Binding IsRepoUrlReadOnly, Converter={StaticResource BooleanToVisibilityRevertConverter}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ui:TextBlock Grid.Column="0"
Margin="0,0,8,0"
VerticalAlignment="Center"
Foreground="{ui:ThemeResource TextFillColorPrimaryBrush}"
Text="用户名称:" />
<!-- 编辑模式:可输入 -->
<TextBox Grid.Column="1"
MinWidth="160"
VerticalAlignment="Center"
Text="{Binding GitUsername, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
<!-- 第四行Git Token -->
<Grid Grid.Row="3"
Margin="0,0,0,12"
Visibility="{Binding IsRepoUrlReadOnly, Converter={StaticResource BooleanToVisibilityRevertConverter}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ui:TextBlock Grid.Column="0"
Margin="0,0,8,0"
VerticalAlignment="Center"
Foreground="{ui:ThemeResource TextFillColorPrimaryBrush}"
Text="访问令牌:" />
<!-- 编辑模式:可输入 -->
<PasswordBox x:Name="GitTokenPasswordBox"
Grid.Column="1"
MinWidth="160"
VerticalAlignment="Center"
PasswordChanged="PasswordBox_PasswordChanged" />
</Grid>
<!-- 第五行:按钮组 -->
<Grid Grid.Row="4" Margin="0,0,0,8">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ui:Button Grid.Column="0"
Margin="0,0,4,0"
Command="{Binding UpdateRepoCommand}"
Content="更新仓库"
Icon="{ui:SymbolIcon CloudSync24}"
HorizontalAlignment="Stretch" />
<ui:Button Grid.Column="1"
Margin="4,0,0,0"
Command="{Binding ResetRepoCommand}"
Content="重置仓库"
Icon="{ui:SymbolIcon ArrowReset24}"
HorizontalAlignment="Stretch" />
</Grid>
</Grid>
</TabItem>
<!-- 在线更新标签页 -->
<!--<TabItem Width="100">
<TabItem.Header>
<StackPanel Orientation="Horizontal">
<ui:SymbolIcon Margin="0,0,6,0" Symbol="DocumentArrowDown20" />
<TextBlock Text="URL更新" />
</StackPanel>
</TabItem.Header>
<Grid Margin="0,12,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ui:TextBlock Grid.Row="0"
Margin="0,0,0,12"
Foreground="{ui:ThemeResource TextFillColorSecondaryBrush}"
TextWrapping="Wrap"
Text="从在线地址直接下载脚本仓库压缩包,适用于网络环境较好的情况。" />
<Grid Grid.Row="1" Margin="0,0,0,12">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ui:TextBlock Grid.Column="0"
Margin="0,0,8,0"
VerticalAlignment="Center"
Foreground="{ui:ThemeResource TextFillColorPrimaryBrush}"
Text="下载地址:" />
<TextBox Grid.Column="1"
MinWidth="160"
VerticalAlignment="Center"
Text="{Binding OnlineDownloadUrl}" />
</Grid>
<ui:Button Grid.Row="2"
Command="{Binding DownloadOnlineRepoCommand}"
Content="下载并导入"
Icon="{ui:SymbolIcon Cloud24}"
HorizontalAlignment="Left" />
</Grid>
</TabItem>-->
<!-- 手动导入标签页 -->
<TabItem Width="100">
<TabItem.Header>
<StackPanel Orientation="Horizontal">
<ui:SymbolIcon Margin="0,0,6,0" Symbol="FolderZip24" />
<TextBlock Text="手动导入" />
</StackPanel>
</TabItem.Header>
<Grid Margin="0,12,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ui:TextBlock Grid.Row="0"
Margin="0,0,0,12"
Foreground="{ui:ThemeResource TextFillColorSecondaryBrush}"
TextWrapping="Wrap"
Text="从本地zip文件导入脚本仓库适用于离线环境或网络不稳定的情况。" />
<ui:TextBlock Grid.Row="1"
Margin="0,0,0,12"
Foreground="{ui:ThemeResource TextFillColorTertiaryBrush}"
TextWrapping="Wrap"
Text="请选择包含脚本仓库内容的zip压缩包文件进行导入。" />
<ui:TextBlock Grid.Row="2"
Margin="0,0,0,12"
Foreground="{ui:ThemeResource TextFillColorSecondaryBrush}"
TextWrapping="Wrap">
<Run Text="可以从这里获取zip" />
<Hyperlink NavigateUri="https://bettergi.com/feats/autos/srepo.html" RequestNavigate="Hyperlink_RequestNavigate">
<Run Text="脚本仓库文档" />
</Hyperlink>
</ui:TextBlock>
<ui:Button Grid.Row="3"
Command="{Binding ImportLocalScriptsRepoZipCommand}"
Content="选择zip文件导入"
Icon="{ui:SymbolIcon FolderZip24}"
HorizontalAlignment="Left" />
</Grid>
</TabItem>
</TabControl>
</Border>
<!-- 进度条区域 -->
<Grid Grid.Row="1"
Margin="0,12,0,8"
Visibility="{Binding IsUpdating, Converter={StaticResource BooleanToVisibilityConverter}}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ui:TextBlock Grid.Row="0"
Margin="0,0,0,4"
VerticalAlignment="Center"
Foreground="{ui:ThemeResource TextFillColorSecondaryBrush}"
Text="{Binding UpdateProgressText}" />
<ProgressBar Grid.Row="1"
Maximum="100"
Value="{Binding UpdateProgressValue}" />
</Grid>
<!-- 公共按钮区域 -->
<Grid Grid.Row="2" Margin="0,4,0,0">
<ui:Button Appearance="Primary"
Command="{Binding OpenLocalScriptRepoCommand}"
Content="打开仓库"
Icon="{ui:SymbolIcon BookStar24}"
HorizontalAlignment="Center"
IsEnabled="{Binding IsUpdating, Converter={StaticResource InverseBooleanConverter}}" />
</Grid>
</Grid>
</Grid>
</ui:FluentWindow>