Files
MaaAssistantArknights/src/MaaWpfGui/Views/UserControl/GuideUserControl.xaml
status102 3db8613a43 chore: wpf各种提示 (#12930)
* chore: 给喜欢指定参数不看说明的加个提示

* chore: 给代理倍率加个?

* fix: 减重繁中

* chore: KR tweak translation

* i18n: EN dot symbol

* feat: 带提示控件使用 TooltipBlock

* chore: 调整无序列表显示

* chore: 调整显示效果

* perf: 简化自定干员提示

* fix: TooltipText 内容错误

* chore: 调整 TooltipBlock 默认 Margin

* chore: 重置 TextBox InitialShowDelay 默认行为

* chore: 修改描述

* chore: 修改自动战斗描述

* perf: 优化控件布局

* feat: 新增强制Github下载描述

* chore: 调整绑定

---------

Co-authored-by: HX3N <scarlet7518@gmail.com>
Co-authored-by: Constrat <56174894+Constrat@users.noreply.github.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2025-06-10 23:33:35 +08:00

367 lines
22 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.
<UserControl
x:Class="MaaWpfGui.Views.UserControl.GuideUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c="clr-namespace:CalcBinding;assembly=CalcBinding"
xmlns:controls="clr-namespace:MaaWpfGui.Styles.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dd="urn:gong-wpf-dragdrop"
xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:helper="clr-namespace:MaaWpfGui.Helper"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:s="https://github.com/canton7/Stylet"
xmlns:settingsViews="clr-namespace:MaaWpfGui.Views.UserControl.Settings"
xmlns:taskQueue="clr-namespace:MaaWpfGui.Views.UserControl.TaskQueue"
xmlns:ui="clr-namespace:MaaWpfGui.ViewModels.UI"
d:Background="White"
d:DataContext="{d:DesignInstance ui:SettingsViewModel}"
d:DesignWidth="400"
mc:Ignorable="d">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" MinHeight="340" />
<RowDefinition Height="*" MaxHeight="280" />
</Grid.RowDefinitions>
<GroupBox
Grid.Row="0"
Margin="10"
Background="{DynamicResource RegionBrush}"
Style="{StaticResource GroupBoxTab}">
<GroupBox.Header>
<hc:RelativePanel Height="20">
<TextBlock
hc:RelativePanel.AlignHorizontalCenterWithPanel="True"
hc:RelativePanel.AlignVerticalCenterWithPanel="True"
FontSize="14"
Text="{DynamicResource SettingsGuide}" />
<!--<Button
Margin="5,0"
Command="{s:Action DoneGuide}"
Content="Skip"
Style="{StaticResource ButtonDashedWarning.Small}" />-->
</hc:RelativePanel>
</GroupBox.Header>
<DockPanel>
<StackPanel
Margin="10"
VerticalAlignment="Center"
DockPanel.Dock="Right">
<Button
MinWidth="100"
hc:IconElement.Geometry="{StaticResource UpGeometry}"
hc:IconElement.Width="18"
Command="{s:Action PrevGuide}"
CommandParameter="{Binding ElementName=GuideStepBar}"
Content="{DynamicResource PrevGuide}"
Style="{StaticResource ButtonDashedPrimary}" />
<hc:StepBar
Name="GuideStepBar"
Margin="10"
Dock="Right"
StepIndex="{Binding GuideStepIndex}">
<hc:StepBarItem Content="{DynamicResource UiSettings}" />
<hc:StepBarItem Content="{DynamicResource GameSettings}" />
<hc:StepBarItem Content="{DynamicResource ConnectionSettings}" />
<hc:StepBarItem Content="{DynamicResource TaskSettings}" />
</hc:StepBar>
<Button
MinWidth="100"
hc:IconElement.Geometry="{StaticResource DownGeometry}"
hc:IconElement.Width="18"
Command="{s:Action NextGuide}"
CommandParameter="{Binding ElementName=GuideStepBar}"
Content="{DynamicResource NextGuide}"
Style="{StaticResource ButtonDashedPrimary}"
Visibility="{c:Binding 'GuideStepIndex less= 2'}" />
<Button
MinWidth="100"
hc:IconElement.Geometry="{StaticResource SuccessGeometry}"
hc:IconElement.Width="18"
Command="{s:Action DoneGuide}"
Content="{DynamicResource DoneGuide}"
Style="{StaticResource ButtonDashedPrimary}"
Visibility="{c:Binding 'GuideStepIndex > 2'}" />
</StackPanel>
<ScrollViewer Margin="10,20,10,20" VerticalScrollBarVisibility="Auto">
<hc:SimplePanel HorizontalAlignment="Center" VerticalAlignment="Center">
<hc:TransitioningContentControl
Width="240"
TransitionMode="{Binding GuideTransitionMode}"
Visibility="{c:Binding 'GuideStepIndex less= 0'}">
<hc:UniformSpacingPanel
DataContext="{Binding GuiSettings}"
Orientation="Vertical"
Spacing="40">
<ComboBox
hc:InfoElement.HorizontalAlignment="Center"
hc:InfoElement.Title="{Binding LanguageInfo, Mode=OneTime}"
hc:InfoElement.TitlePlacement="Left"
hc:InfoElement.TitleWidth="110"
DisplayMemberPath="Display"
ItemsSource="{Binding LanguageList}"
SelectedValue="{Binding Language}"
SelectedValuePath="Value" />
<ComboBox
hc:InfoElement.HorizontalAlignment="Center"
hc:InfoElement.Title="{DynamicResource UiTheme}"
hc:InfoElement.TitlePlacement="Left"
hc:InfoElement.TitleWidth="110"
DisplayMemberPath="Display"
ItemsSource="{Binding DarkModeList}"
SelectedValue="{Binding DarkMode}"
SelectedValuePath="Value" />
</hc:UniformSpacingPanel>
</hc:TransitioningContentControl>
<hc:TransitioningContentControl TransitionMode="{Binding GuideTransitionMode}" Visibility="{c:Binding 'GuideStepIndex == 1'}">
<StackPanel DataContext="{Binding GameSettings}">
<controls:TextBlock
Margin="10,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{DynamicResource ClientType}" />
<ComboBox
Width="200"
Margin="10"
HorizontalAlignment="Center"
VerticalAlignment="Center"
DisplayMemberPath="Display"
ItemsSource="{Binding ClientTypeList}"
SelectedValue="{Binding ClientType}"
SelectedValuePath="Value" />
<CheckBox
Margin="20,10"
VerticalAlignment="Center"
IsChecked="{Binding DeploymentWithPause}">
<controls:TextBlock
Block.TextAlignment="Center"
Text="{DynamicResource DeploymentWithPause}"
TextWrapping="Wrap" />
</CheckBox>
</StackPanel>
</hc:TransitioningContentControl>
<hc:TransitioningContentControl
Width="240"
TransitionMode="{Binding GuideTransitionMode}"
Visibility="{c:Binding 'GuideStepIndex == 2'}">
<StackPanel s:View.ActionTarget="{Binding DataContext, RelativeSource={RelativeSource Self}}" DataContext="{Binding Source={x:Static ui:SettingsViewModel.ConnectSettings}}">
<controls:TextBlock
Margin="0,5"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Block.TextAlignment="Left"
Foreground="{DynamicResource InfoBrush}"
Text="{DynamicResource GuideStepClarification}"
TextWrapping="Wrap" />
<StackPanel Orientation="Horizontal">
<CheckBox
Margin="0,10"
Content="{DynamicResource AutoDetectConnection}"
IsChecked="{Binding AutoDetectConnection}" />
<controls:TooltipBlock TooltipText="{DynamicResource AutoDetectConnectionTip}" />
</StackPanel>
<CheckBox
Margin="0,10"
Content="{DynamicResource AlwaysAutoDetectConnection}"
IsChecked="{Binding AlwaysAutoDetectConnection}"
Visibility="{c:Binding AutoDetectConnection}" />
<Grid Margin="0,5" Visibility="{c:Binding !AutoDetectConnection}">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<hc:TextBox
Grid.Column="0"
hc:BorderElement.CornerRadius="4,0,0,4"
hc:InfoElement.Title="{DynamicResource AdbPath}"
Text="{Binding AdbPath}" />
<Button
Grid.Column="1"
Width="60"
VerticalAlignment="Bottom"
hc:BorderElement.CornerRadius="0,4,4,0"
BorderThickness="0,1,1,1"
Command="{s:Action SelectFile}"
Content="{DynamicResource Select}" />
</Grid>
<Grid Visibility="{c:Binding !AutoDetectConnection}">
<hc:ComboBox
Margin="0,5"
HorizontalContentAlignment="Stretch"
hc:InfoElement.Title="{DynamicResource ConnectionAddress}"
IsEditable="True"
ItemsSource="{Binding ConnectAddressHistory}"
Text="{Binding ConnectAddress, UpdateSourceTrigger=LostFocus}">
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock
Grid.Column="0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Text="{Binding}" />
<Button
Grid.Column="1"
HorizontalAlignment="Right"
Command="{s:Action RemoveAddressClick}"
CommandParameter="{Binding}"
Content="×"
FontWeight="Bold" />
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</hc:ComboBox>
<controls:TooltipBlock
Margin="0,5,0,0"
HorizontalAlignment="Right"
VerticalAlignment="Top"
TooltipText="{DynamicResource ConnectionAddressTip}" />
</Grid>
<hc:ComboBox
Margin="0,5"
hc:InfoElement.Title="{DynamicResource ConnectionPreset}"
DisplayMemberPath="Display"
ItemsSource="{Binding ConnectConfigList}"
SelectedValue="{Binding ConnectConfig}"
SelectedValuePath="Value"
Visibility="{c:Binding !AutoDetectConnection}" />
<hc:ComboBox
Margin="0,5"
hc:InfoElement.Title="{DynamicResource TouchMode}"
DisplayMemberPath="Display"
IsHitTestVisible="{Binding Idle, Source={x:Static helper:Instances.SettingsViewModel}}"
ItemsSource="{Binding TouchModeList}"
SelectedValue="{Binding TouchMode}"
SelectedValuePath="Value" />
</StackPanel>
</hc:TransitioningContentControl>
<hc:TransitioningContentControl
Width="240"
Height="270"
TransitionMode="{Binding GuideTransitionMode}"
Visibility="{c:Binding 'GuideStepIndex == 3'}">
<hc:RelativePanel>
<TextBlock
Name="ToolTipGuide"
Margin="0,10"
Text="{DynamicResource ToolTipGuide}" />
<controls:TooltipBlock
x:Name="PerformBattlesGuide"
Margin="0,10,0,10"
hc:RelativePanel.RightOf="{Binding ElementName=ToolTipGuide}"
TooltipText="{DynamicResource CheckBoxesNotSaved}" />
<Border
Name="Task"
Padding="5,0,0,0"
hc:RelativePanel.Below="{Binding ElementName=ToolTipGuide}"
BorderBrush="{DynamicResource BorderBrush}"
BorderThickness="1"
CornerRadius="4">
<StackPanel Orientation="Horizontal">
<!--<maa:TextBlock
Text="{Binding ID}" />
<maa:TextBlock Text=". " />-->
<CheckBox
Width="180"
Content="{DynamicResource Combat}"
MouseRightButtonUp="{s:Action ToggleCheckBoxNullOnRightClick,
Target={x:Type helper:CheckBoxHelper}}"
ToolTip="{DynamicResource CheckBoxesNotSavedAsNull}" />
<hc:ButtonGroup>
<RadioButton
hc:IconElement.Geometry="{StaticResource ConfigGeometry}"
hc:VisualElement.HighlightBackground="Transparent"
hc:VisualElement.HighlightForeground="{DynamicResource PrimaryBrush}"
Background="Transparent"
BorderThickness="0"
Foreground="{DynamicResource SecondaryTextBrush}"
Style="{DynamicResource RadioGroupItemSingle}"
ToolTip="{DynamicResource TaskSettings}" />
</hc:ButtonGroup>
</StackPanel>
</Border>
<TextBlock
Name="TaskGuide"
Margin="10"
hc:RelativePanel.AlignLeftWith="{Binding ElementName=Task}"
hc:RelativePanel.Below="{Binding ElementName=Task}"
FontSize="14"
Text="{DynamicResource TaskGuide}" />
<TextBlock
Name="TaskSettingsGuide1"
Margin="0,5,30,0"
hc:RelativePanel.AlignRightWith="{Binding ElementName=Task}"
hc:RelativePanel.Below="{Binding ElementName=Task}"
FontSize="14"
Text="↗" />
<TextBlock
Name="TaskSettingsGuide2"
Width="90"
Margin="5,5,0,5"
hc:RelativePanel.AlignRightWith="{Binding ElementName=TaskSettingsGuide1}"
hc:RelativePanel.Below="{Binding ElementName=TaskSettingsGuide1}"
FontSize="14"
Text="{DynamicResource TaskSettings}"
TextAlignment="Left" />
<TextBlock
Name="TaskSettingsGuide3"
hc:RelativePanel.AlignLeftWith="{Binding ElementName=TaskSettingsGuide2}"
hc:RelativePanel.Below="{Binding ElementName=TaskSettingsGuide2}"
FontSize="14"
Text="↙" />
<TextBlock
Name="GeneralSettingsGuide"
Margin="5,10"
hc:RelativePanel.AlignLeftWith="{Binding ElementName=TaskGuide}"
hc:RelativePanel.Below="{Binding ElementName=TaskGuide}"
FontSize="14"
Text="{DynamicResource OftenUsedGuide}" />
<hc:ButtonGroup
Name="TaskSettings"
Width="220"
hc:RelativePanel.Below="{Binding ElementName=GeneralSettingsGuide}"
Orientation="Horizontal">
<RadioButton Content="{DynamicResource GeneralSettings}" IsChecked="True" />
<RadioButton Content="{DynamicResource AdvancedSettings}" />
</hc:ButtonGroup>
<TextBlock
Name="AdvancedSettingsGuide"
Margin="5,10"
hc:RelativePanel.AlignRightWith="{Binding ElementName=TaskSettings}"
hc:RelativePanel.Below="{Binding ElementName=TaskSettings}"
FontSize="14"
Text="{DynamicResource SometimesUsedGuide}" />
<Button
Name="LinkStart"
Width="100"
Height="50"
Margin="5"
hc:RelativePanel.Below="{Binding ElementName=AdvancedSettingsGuide}"
Content="{DynamicResource LinkStart}" />
<TextBlock
Name="LinkStartGuide"
Margin="10,20"
hc:RelativePanel.Below="{Binding ElementName=AdvancedSettingsGuide}"
hc:RelativePanel.RightOf="{Binding ElementName=LinkStart}"
FontSize="14"
Text="{DynamicResource LinkStartGuide}" />
</hc:RelativePanel>
</hc:TransitioningContentControl>
</hc:SimplePanel>
</ScrollViewer>
</DockPanel>
</GroupBox>
</Grid>
</UserControl>