mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-19 10:32:19 +08:00
494 lines
24 KiB
XML
494 lines
24 KiB
XML
<UserControl
|
|
x:Class="MaaWpfGui.Views.UI.CopilotView"
|
|
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:constants="clr-namespace:MaaWpfGui.Constants"
|
|
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:local="clr-namespace:MaaWpfGui"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:properties="clr-namespace:MaaWpfGui.Styles.Properties"
|
|
xmlns:s="https://github.com/canton7/Stylet"
|
|
xmlns:ui="clr-namespace:MaaWpfGui.ViewModels.UI"
|
|
xmlns:viewModels="clr-namespace:MaaWpfGui.ViewModels"
|
|
xmlns:vm="clr-namespace:MaaWpfGui"
|
|
d:Background="White"
|
|
d:DataContext="{d:DesignInstance {x:Type ui:CopilotViewModel}}"
|
|
d:DesignHeight="550"
|
|
d:DesignWidth="800"
|
|
AllowDrop="True"
|
|
Drop="{s:Action DropFile}"
|
|
KeyDown="{s:Action KeyDown}"
|
|
MouseDown="{s:Action MouseDown}"
|
|
mc:Ignorable="d">
|
|
<Grid Margin="20">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition />
|
|
<ColumnDefinition />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<StackPanel
|
|
Grid.Row="0"
|
|
HorizontalAlignment="Center"
|
|
Orientation="Vertical">
|
|
<controls:TextBlock
|
|
Margin="10,0"
|
|
Block.TextAlignment="Center"
|
|
Text="{DynamicResource CopilotLocation}" />
|
|
<Grid Width="300" Margin="10">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<ComboBox
|
|
Grid.Column="0"
|
|
Height="30"
|
|
hc:BorderElement.CornerRadius="4,0,0,4"
|
|
DropDownOpened="{s:Action OnDropDownOpened}"
|
|
IsEditable="True"
|
|
IsReadOnly="{c:Binding Path=!Idle}"
|
|
Text="{Binding Filename}" />
|
|
<Button
|
|
Grid.Column="1"
|
|
Height="30"
|
|
MinWidth="30"
|
|
hc:BorderElement.CornerRadius="0"
|
|
hc:IconElement.Geometry="{StaticResource FolderOpen20Regular}"
|
|
BorderThickness="0,1,1,1"
|
|
Command="{s:Action SelectFile}"
|
|
IsEnabled="{c:Binding '(Idle) and (StartEnabled)'}" />
|
|
<Button
|
|
Grid.Column="2"
|
|
Height="30"
|
|
MinWidth="30"
|
|
hc:BorderElement.CornerRadius="0,4,4,0"
|
|
hc:IconElement.Geometry="{StaticResource ClipboardLink20Regular}"
|
|
BorderThickness="0,1,1,1"
|
|
Command="{s:Action PasteClipboard}"
|
|
IsEnabled="{c:Binding '(Idle) and (StartEnabled)'}"
|
|
MouseRightButtonUp="{s:Action PasteClipboardCopilotSet}" />
|
|
<controls:TooltipBlock
|
|
Grid.Column="1"
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Top"
|
|
MouseLeftButtonDown="{s:Action SelectFile}"
|
|
NormalOpacity="0.25"
|
|
TooltipText="{DynamicResource SelectTheFileTip}" />
|
|
<controls:TooltipBlock
|
|
Grid.Column="2"
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Top"
|
|
MouseLeftButtonDown="{s:Action PasteClipboard}"
|
|
NormalOpacity="0.25"
|
|
TooltipText="{DynamicResource PasteClipboardTip}" />
|
|
</Grid>
|
|
</StackPanel>
|
|
|
|
<StackPanel
|
|
x:Name="RootPanel"
|
|
Grid.Row="1"
|
|
HorizontalAlignment="Center"
|
|
IsEnabled="{Binding Idle}">
|
|
<StackPanel>
|
|
<StackPanel.Style>
|
|
<Style TargetType="StackPanel">
|
|
<Setter Property="Orientation" Value="Vertical" />
|
|
<Style.Triggers>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition Binding="{Binding Form}" Value="False" />
|
|
<Condition Binding="{Binding UseCopilotList}" Value="False" />
|
|
</MultiDataTrigger.Conditions>
|
|
<Setter Property="Orientation" Value="Horizontal" />
|
|
</MultiDataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</StackPanel.Style>
|
|
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
|
|
<StackPanel
|
|
Margin="2.5,5"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
Orientation="Horizontal">
|
|
<CheckBox Content="{DynamicResource AutoSquad}" IsChecked="{Binding Form}" />
|
|
<controls:TooltipBlock TooltipText="{DynamicResource AutoSquadTip}" />
|
|
</StackPanel>
|
|
<StackPanel
|
|
Margin="2.5,5"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
Orientation="Horizontal"
|
|
Visibility="{c:Binding Form}">
|
|
<controls:TextBlock VerticalAlignment="Center" Text="{DynamicResource UseFormation}" />
|
|
<ComboBox
|
|
Margin="0,-10"
|
|
Padding="0,-1,8,0"
|
|
VerticalAlignment="Center"
|
|
BorderThickness="0"
|
|
DisplayMemberPath="Display"
|
|
ItemsSource="{Binding FormationSelectList}"
|
|
SelectedValue="{Binding SelectFormation}"
|
|
SelectedValuePath="Value" />
|
|
</StackPanel>
|
|
</StackPanel>
|
|
|
|
<StackPanel HorizontalAlignment="Center" Visibility="{c:Binding Form}">
|
|
<CheckBox
|
|
Margin="2.5,5"
|
|
HorizontalAlignment="Center"
|
|
Content="{DynamicResource Copilot.IgnoreRequirements}"
|
|
IsChecked="{Binding IgnoreRequirements}" />
|
|
<StackPanel HorizontalAlignment="Center">
|
|
<StackPanel.Style>
|
|
<Style TargetType="StackPanel">
|
|
<Setter Property="Orientation" Value="Vertical" />
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding AddUserAdditional}" Value="False">
|
|
<Setter Property="Orientation" Value="Horizontal" />
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</StackPanel.Style>
|
|
<CheckBox
|
|
Margin="2.5,5"
|
|
HorizontalAlignment="Center"
|
|
Content="{DynamicResource AddTrust}"
|
|
IsChecked="{Binding AddTrust}" />
|
|
<StackPanel
|
|
Margin="2.5,5"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
Orientation="Horizontal">
|
|
<CheckBox
|
|
Margin="2.5,5"
|
|
Content="{DynamicResource AddUserAdditional}"
|
|
IsChecked="{Binding AddUserAdditional}" />
|
|
<TextBox
|
|
Height="20"
|
|
MinWidth="100"
|
|
MaxWidth="140"
|
|
Margin="2.5,-10"
|
|
VerticalContentAlignment="Center"
|
|
Text="{Binding UserAdditional, UpdateSourceTrigger=LostFocus}"
|
|
ToolTip="{DynamicResource AddUserAdditionalTip}"
|
|
ToolTipService.InitialShowDelay="0"
|
|
Visibility="{c:Binding AddUserAdditional}" />
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
|
|
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
|
|
<StackPanel
|
|
Margin="2.5,5"
|
|
VerticalAlignment="Center"
|
|
Orientation="Horizontal">
|
|
<CheckBox Content="{DynamicResource UseCopilotList}" IsChecked="{Binding UseCopilotList}" />
|
|
<controls:TooltipBlock TooltipText="{DynamicResource UseCopilotListTip}" />
|
|
</StackPanel>
|
|
<CheckBox
|
|
Margin="2.5,5"
|
|
Content="{DynamicResource UseSanityPotion}"
|
|
IsChecked="{Binding UseSanityPotion}"
|
|
Visibility="{c:Binding UseCopilotList}" />
|
|
</StackPanel>
|
|
</StackPanel>
|
|
<StackPanel
|
|
Margin="2.5,5"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
Orientation="Horizontal"
|
|
Visibility="{c:Binding !UseCopilotList}">
|
|
<CheckBox
|
|
VerticalContentAlignment="Center"
|
|
Content="{DynamicResource LoopTimes}"
|
|
IsChecked="{Binding Loop}" />
|
|
<hc:NumericUpDown
|
|
Margin="5,0,0,0"
|
|
HorizontalContentAlignment="Center"
|
|
VerticalContentAlignment="Center"
|
|
InputMethod.IsInputMethodEnabled="False"
|
|
Maximum="9999"
|
|
Minimum="0"
|
|
Value="{Binding LoopTimes}" />
|
|
</StackPanel>
|
|
</StackPanel>
|
|
|
|
<Grid
|
|
Grid.Row="2"
|
|
Width="200"
|
|
Margin="0,7,0,0"
|
|
Visibility="{c:Binding UseCopilotList}">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<ListBox
|
|
x:Name="CopilotList"
|
|
Grid.Row="0"
|
|
Grid.ColumnSpan="4"
|
|
HorizontalContentAlignment="Stretch"
|
|
dd:DragDrop.IsDragSource="{Binding Idle}"
|
|
dd:DragDrop.IsDropTarget="{Binding Idle}"
|
|
hc:BorderElement.CornerRadius="4,4,0,0"
|
|
properties:AutoScroll.AutoScroll="True"
|
|
BorderThickness="1,1,1,0"
|
|
DragDrop.Drop="{s:Action CopilotItemIndexChanged}"
|
|
IsEnabled="{c:Binding StartEnabled}"
|
|
ItemsSource="{Binding Path=CopilotItemViewModels}"
|
|
Style="{DynamicResource NoSelectedHighlightListBoxStyle}"
|
|
ToolTip="{DynamicResource LabelSequenceTip}">
|
|
<ListBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<CheckBox
|
|
Grid.Column="0"
|
|
Content="{c:Binding Name}"
|
|
IsChecked="{Binding IsChecked}"
|
|
IsEnabled="{Binding ElementName=CopilotList, Path=DataContext.Idle}"
|
|
IsHitTestVisible="{Binding ElementName=CopilotList, Path=DataContext.Idle}"
|
|
ToolTip="{c:Binding CopilotId}" />
|
|
<controls:TextBlock
|
|
Grid.Column="1"
|
|
MinWidth="35"
|
|
VerticalAlignment="Center"
|
|
Text="{DynamicResource CopilotTaskRaidStage}"
|
|
Visibility="{c:Binding IsRaid}" />
|
|
<Button
|
|
Grid.Column="2"
|
|
Margin="0"
|
|
Padding="5,6,5,6"
|
|
hc:IconElement.Geometry="{StaticResource ConfigGeometry}"
|
|
hc:VisualElement.HighlightBackground="Transparent"
|
|
hc:VisualElement.HighlightForeground="{DynamicResource PrimaryBrush}"
|
|
Background="Transparent"
|
|
BorderThickness="0"
|
|
Command="{s:Action SelectCopilotTask}"
|
|
CommandParameter="{c:Binding Index}"
|
|
Foreground="{DynamicResource SecondaryTextBrush}"
|
|
IsEnabled="{Binding ElementName=CopilotList, Path=DataContext.Idle}" />
|
|
<Button
|
|
Grid.Column="3"
|
|
Margin="0"
|
|
Padding="5,0,10,0"
|
|
hc:IconElement.Geometry="{StaticResource CloseGeometry}"
|
|
hc:VisualElement.HighlightBackground="Transparent"
|
|
hc:VisualElement.HighlightForeground="{DynamicResource PrimaryBrush}"
|
|
Background="Transparent"
|
|
BorderThickness="0"
|
|
Command="{s:Action DeleteCopilotTask}"
|
|
CommandParameter="{c:Binding Index}"
|
|
IsEnabled="{Binding ElementName=CopilotList, Path=DataContext.Idle}" />
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ListBox.ItemTemplate>
|
|
</ListBox>
|
|
<Grid Grid.Row="1" Grid.Column="1">
|
|
<hc:TextBox
|
|
Height="30"
|
|
HorizontalContentAlignment="Center"
|
|
VerticalContentAlignment="Center"
|
|
hc:BorderElement.CornerRadius="0"
|
|
hc:InfoElement.Placeholder="{DynamicResource CopilotTaskName}"
|
|
IsEnabled="{Binding Idle}"
|
|
MaxLines="1"
|
|
Text="{Binding CopilotTaskName, UpdateSourceTrigger=LostFocus}" />
|
|
<controls:TooltipBlock
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Top"
|
|
NormalOpacity="0.25"
|
|
TooltipText="{DynamicResource CopilotTaskNameTip}" />
|
|
</Grid>
|
|
<Grid Grid.Row="1" Grid.Column="0">
|
|
<Button
|
|
Height="30"
|
|
MinWidth="30"
|
|
hc:BorderElement.CornerRadius="0,0,0,4"
|
|
hc:IconElement.Geometry="{StaticResource FolderAdd20Regular}"
|
|
BorderThickness="1,1,0,1"
|
|
Command="{s:Action ImportFiles}"
|
|
IsEnabled="{c:Binding '(Idle) and (StartEnabled)'}" />
|
|
<controls:TooltipBlock
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Top"
|
|
MouseLeftButtonDown="{s:Action ImportFiles}"
|
|
NormalOpacity="0.25"
|
|
TooltipText="{DynamicResource ImportFilesTip}" />
|
|
</Grid>
|
|
<Grid Grid.Row="1" Grid.Column="2">
|
|
<Button
|
|
Height="30"
|
|
MinWidth="30"
|
|
hc:BorderElement.CornerRadius="0"
|
|
hc:IconElement.Geometry="{StaticResource Add20Regular}"
|
|
BorderThickness="0,1"
|
|
Command="{s:Action AddCopilotTask}"
|
|
IsEnabled="{c:Binding '(Idle) and (StartEnabled)'}"
|
|
MouseRightButtonUp="{s:Action AddCopilotTask_Adverse}" />
|
|
<controls:TooltipBlock
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Top"
|
|
MouseLeftButtonDown="{s:Action AddCopilotTask}"
|
|
MouseRightButtonUp="{s:Action AddCopilotTask_Adverse}"
|
|
NormalOpacity="0.25"
|
|
TooltipText="{DynamicResource CopilotAddTask}" />
|
|
</Grid>
|
|
<Grid Grid.Row="1" Grid.Column="3">
|
|
<Button
|
|
Height="30"
|
|
MinWidth="30"
|
|
hc:BorderElement.CornerRadius="0,0,4,0"
|
|
hc:IconElement.Geometry="{StaticResource DismissSquareMultiple20Regular}"
|
|
BorderThickness="1"
|
|
Command="{s:Action ClearCopilotTask}"
|
|
Foreground="{DynamicResource DangerBrush}"
|
|
IsEnabled="{c:Binding Idle}"
|
|
MouseRightButtonUp="{s:Action CleanUnableCopilotTask}" />
|
|
<controls:TooltipBlock
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Top"
|
|
MouseLeftButtonDown="{s:Action ClearCopilotTask}"
|
|
MouseRightButtonUp="{s:Action CleanUnableCopilotTask}"
|
|
NormalOpacity="0.25"
|
|
TooltipText="{DynamicResource CopilotClearTask}" />
|
|
</Grid>
|
|
</Grid>
|
|
|
|
<Grid
|
|
Grid.Row="{c:Binding 'UseCopilotList ? 3:2'}"
|
|
Margin="0,10"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Top"
|
|
d:Grid.Row="3">
|
|
<Button
|
|
Width="120"
|
|
Height="50"
|
|
Command="{s:Action Start}"
|
|
Content="{DynamicResource Start}"
|
|
IsEnabled="{c:Binding StartEnabled}"
|
|
Visibility="{c:Binding Idle}" />
|
|
<Button
|
|
Width="120"
|
|
Height="50"
|
|
Command="{s:Action Stop}"
|
|
Content="{DynamicResource Stop}"
|
|
Visibility="{c:Binding !Idle}" />
|
|
</Grid>
|
|
|
|
<controls:TextBlock Grid.Row="4" Block.TextAlignment="Center">
|
|
<Hyperlink
|
|
Cursor="Hand"
|
|
NavigateUri="{Binding CopilotUrl}"
|
|
TextDecorations="None">
|
|
<TextBlock d:Text="PrtsPlus" Text="{Binding UrlText}" />
|
|
</Hyperlink>
|
|
</controls:TextBlock>
|
|
</Grid>
|
|
|
|
<Grid Grid.Column="1">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<hc:ScrollViewer
|
|
Width="360"
|
|
properties:AutoScroll.AutoScroll="True"
|
|
HorizontalScrollBarVisibility="Disabled"
|
|
IsInertiaEnabled="True"
|
|
PanningMode="VerticalOnly">
|
|
<ItemsControl ItemsSource="{Binding Path=LogItemViewModels}">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<controls:TextBlock
|
|
Grid.Column="0"
|
|
Margin="0,5,12,0"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Stretch"
|
|
Foreground="{DynamicResource TraceLogBrush}"
|
|
Text="{Binding Time}"
|
|
TextWrapping="Wrap"
|
|
Visibility="{c:Binding ShowTime}" />
|
|
<controls:TextBlock
|
|
Grid.Column="1"
|
|
Margin="0,5"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Stretch"
|
|
FontWeight="{Binding Weight}"
|
|
ForegroundKey="{Binding Color}"
|
|
Text="{Binding Content}"
|
|
TextWrapping="Wrap" />
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</hc:ScrollViewer>
|
|
<StackPanel
|
|
Grid.Row="1"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Bottom"
|
|
Orientation="Horizontal"
|
|
Visibility="{c:Binding CouldLikeWebJson}">
|
|
<controls:TextBlock
|
|
Margin="10"
|
|
VerticalAlignment="Center"
|
|
Block.TextAlignment="Center"
|
|
Text="{DynamicResource DoYouLikeThisWebJson}" />
|
|
<Button
|
|
Width="50"
|
|
Height="30"
|
|
Margin="10"
|
|
Command="{s:Action LikeWebJson}"
|
|
Content="👍" />
|
|
<Button
|
|
Width="50"
|
|
Height="30"
|
|
Margin="10"
|
|
Command="{s:Action DislikeWebJson}"
|
|
Content="👎" />
|
|
</StackPanel>
|
|
|
|
<controls:TextBlock
|
|
Grid.Row="2"
|
|
Margin="0,10,0,0"
|
|
Block.TextAlignment="Center">
|
|
<Hyperlink
|
|
Cursor="Hand"
|
|
NavigateUri="{Binding MapUrl}"
|
|
TextDecorations="None">
|
|
<TextBlock Text="{DynamicResource MapPrts}" />
|
|
</Hyperlink>
|
|
</controls:TextBlock>
|
|
</Grid>
|
|
</Grid>
|
|
</UserControl>
|