mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-19 18:47:55 +08:00
856 lines
50 KiB
XML
856 lines
50 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: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:properties="clr-namespace:MaaWpfGui.Styles.Properties"
|
|
xmlns:s="https://github.com/canton7/Stylet"
|
|
xmlns:ui_vms="clr-namespace:MaaWpfGui.ViewModels.UI"
|
|
d:Background="White"
|
|
d:DataContext="{d:DesignInstance {x:Type ui_vms: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 Width="4*" />
|
|
<ColumnDefinition />
|
|
<ColumnDefinition />
|
|
<ColumnDefinition Width="4*" />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid Grid.ColumnSpan="{c:Binding 'UseCopilotList ? 3 : 2'}" d:Grid.ColumnSpan="3">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<StackPanel
|
|
Grid.Row="0"
|
|
HorizontalAlignment="Center"
|
|
Orientation="Vertical">
|
|
<Border
|
|
Padding="2"
|
|
Background="{DynamicResource MouseOverRegionBrushOpacity75}"
|
|
CornerRadius="4">
|
|
<Grid x:Name="CopilotTabHost">
|
|
<Border
|
|
x:Name="CopilotTabIndicator"
|
|
Width="0"
|
|
Height="0"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Top"
|
|
Background="{DynamicResource RegionBrush}"
|
|
CornerRadius="4"
|
|
IsHitTestVisible="False"
|
|
Opacity="0">
|
|
<Border.RenderTransform>
|
|
<TranslateTransform />
|
|
</Border.RenderTransform>
|
|
</Border>
|
|
<ListBox
|
|
x:Name="CopilotTabList"
|
|
Padding="0"
|
|
HorizontalAlignment="Center"
|
|
Background="Transparent"
|
|
BorderThickness="0"
|
|
IsEnabled="{Binding Idle}"
|
|
Loaded="CopilotTabList_Loaded"
|
|
SelectedIndex="{Binding CopilotTabIndex}"
|
|
SelectionChanged="CopilotTabList_SelectionChanged"
|
|
SizeChanged="CopilotTabList_SizeChanged">
|
|
<ListBox.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<WrapPanel IsItemsHost="True" />
|
|
</ItemsPanelTemplate>
|
|
</ListBox.ItemsPanel>
|
|
<ListBox.ItemContainerStyle>
|
|
<Style BasedOn="{StaticResource NoSelectedHighlightListBoxItemStyle}" TargetType="{x:Type ListBoxItem}">
|
|
<Setter Property="Background" Value="Transparent" />
|
|
<Setter Property="BorderThickness" Value="0" />
|
|
<Setter Property="Margin" Value="0" />
|
|
<Setter Property="MinHeight" Value="28" />
|
|
<Setter Property="Padding" Value="12,2" />
|
|
<Setter Property="HorizontalContentAlignment" Value="Center" />
|
|
<EventSetter Event="Loaded" Handler="CopilotTabItem_Loaded" />
|
|
<EventSetter Event="SizeChanged" Handler="CopilotTabItem_SizeChanged" />
|
|
<Style.Triggers>
|
|
<Trigger Property="IsMouseOver" Value="True">
|
|
<Setter Property="Background" Value="Transparent" />
|
|
</Trigger>
|
|
<Trigger Property="IsSelected" Value="True">
|
|
<Setter Property="Background" Value="Transparent" />
|
|
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}" />
|
|
</Trigger>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsSelected" Value="True" />
|
|
<Condition Property="IsMouseOver" Value="True" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="Background" Value="Transparent" />
|
|
</MultiTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</ListBox.ItemContainerStyle>
|
|
<ListBoxItem Content="{DynamicResource MainStageStoryCollectionSideStory}" />
|
|
<ListBoxItem Content="{DynamicResource SSS}" />
|
|
<ListBoxItem Content="{DynamicResource ParadoxSimulation}" />
|
|
<ListBoxItem Content="{DynamicResource OtherActivityStage}" />
|
|
</ListBox>
|
|
</Grid>
|
|
</Border>
|
|
<Grid Margin="0,5">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid Grid.Column="0">
|
|
<TextBox
|
|
x:Name="FileTextBox"
|
|
Height="30"
|
|
hc:BorderElement.CornerRadius="4,0,0,4"
|
|
hc:InfoElement.Placeholder="{DynamicResource CopilotLocation}"
|
|
IsEnabled="{Binding Idle}"
|
|
Text="{Binding DisplayFilename, UpdateSourceTrigger=PropertyChanged}" />
|
|
<Border
|
|
Margin="1"
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Stretch"
|
|
Background="{DynamicResource RegionBrushOpacity25}"
|
|
BorderThickness="0"
|
|
Cursor="Hand"
|
|
Focusable="False"
|
|
IsEnabled="{Binding Idle}"
|
|
MouseUp="Border_MouseUp">
|
|
<Grid
|
|
Width="28"
|
|
Height="28"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Stretch"
|
|
Opacity="{c:Binding 'Idle ? 1 : 0.5'}">
|
|
<Path
|
|
Width="12"
|
|
Height="12"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
d:Visibility="Visible"
|
|
Data="{StaticResource DownGeometry}"
|
|
Fill="{DynamicResource PrimaryTextBrush}"
|
|
Stretch="Uniform"
|
|
Visibility="{c:Binding !IsFilePopupOpen}" />
|
|
<Path
|
|
Width="12"
|
|
Height="12"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
d:Visibility="Collapsed"
|
|
Data="{StaticResource UpGeometry}"
|
|
Fill="{DynamicResource PrimaryTextBrush}"
|
|
Stretch="Uniform"
|
|
Visibility="{c:Binding IsFilePopupOpen}" />
|
|
</Grid>
|
|
</Border>
|
|
<Popup
|
|
MinWidth="{c:Binding 'ActualWidth + 90',
|
|
ElementName=FileTextBox}"
|
|
IsOpen="{Binding IsFilePopupOpen}"
|
|
LostFocus="Popup_LostFocus"
|
|
Placement="Bottom"
|
|
PlacementRectangle="0,30,0,0"
|
|
PlacementTarget="{Binding ElementName=FileTextBox}"
|
|
StaysOpen="False">
|
|
<Popup.Resources>
|
|
<Style TargetType="Popup">
|
|
<Style.Triggers>
|
|
<Trigger Property="IsOpen" Value="True">
|
|
<Setter Property="FocusManager.FocusedElement" Value="{Binding RelativeSource={RelativeSource Self}, Path=Child}" />
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Popup.Resources>
|
|
<Border
|
|
MinWidth="{c:Binding 'ActualWidth + 90',
|
|
ElementName=FileTextBox}"
|
|
Background="{DynamicResource RegionBrush}"
|
|
BorderBrush="{DynamicResource BorderBrush}"
|
|
BorderThickness="1"
|
|
CornerRadius="4">
|
|
<TreeView
|
|
x:Name="FileTreeView"
|
|
Background="Transparent"
|
|
BorderThickness="0"
|
|
ItemsSource="{Binding FileItems}"
|
|
SelectedItemChanged="FileTreeView_SelectedItemChanged">
|
|
<TreeView.ItemTemplate>
|
|
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
|
|
<controls:TextBlock
|
|
Margin="5"
|
|
HorizontalAlignment="Left"
|
|
Text="{Binding Name}" />
|
|
</HierarchicalDataTemplate>
|
|
</TreeView.ItemTemplate>
|
|
<TreeView.ItemContainerStyle>
|
|
<Style BasedOn="{StaticResource FileTreeViewItemStyle}" TargetType="{x:Type TreeViewItem}" />
|
|
</TreeView.ItemContainerStyle>
|
|
</TreeView>
|
|
</Border>
|
|
</Popup>
|
|
</Grid>
|
|
<Button
|
|
Grid.Column="1"
|
|
Height="30"
|
|
MinWidth="30"
|
|
Padding="0,5"
|
|
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"
|
|
Padding="0,5"
|
|
hc:BorderElement.CornerRadius="0"
|
|
hc:IconElement.Geometry="{StaticResource ClipboardLink20Regular}"
|
|
BorderThickness="0,1,1,1"
|
|
Command="{s:Action PasteClipboard}"
|
|
IsEnabled="{c:Binding '(Idle) and (StartEnabled)'}" />
|
|
<Button
|
|
Grid.Column="3"
|
|
Height="30"
|
|
MinWidth="30"
|
|
Padding="0,5"
|
|
hc:BorderElement.CornerRadius="0,4,4,0"
|
|
hc:IconElement.Geometry="{StaticResource ClipboardLinkSet20Regular}"
|
|
BorderThickness="0,1,1,1"
|
|
Command="{s:Action PasteClipboardCopilotSet}"
|
|
IsEnabled="{c:Binding '(Idle) and (StartEnabled)'}" />
|
|
<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}" />
|
|
<controls:TooltipBlock
|
|
Grid.Column="3"
|
|
Margin="0,0,-2,0"
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Top"
|
|
NormalOpacity="0.25"
|
|
TooltipText="{DynamicResource PasteClipboardCopilotSetTip}" />
|
|
</Grid>
|
|
</StackPanel>
|
|
|
|
<Grid Grid.Row="1" HorizontalAlignment="Center">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition />
|
|
</Grid.RowDefinitions>
|
|
<Grid
|
|
Grid.Row="0"
|
|
Margin="0,5,0,10"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Bottom">
|
|
<Button
|
|
Width="120"
|
|
Height="50"
|
|
Command="{s:Action Start}"
|
|
Content="{DynamicResource Start}"
|
|
IsEnabled="{c:Binding 'StartEnabled and Inited'}"
|
|
Visibility="{c:Binding Idle}" />
|
|
<Button
|
|
Width="120"
|
|
Height="50"
|
|
Command="{s:Action Stop}"
|
|
Content="{DynamicResource Stop}"
|
|
IsEnabled="{c:Binding Inited}"
|
|
Visibility="{c:Binding !Idle}" />
|
|
</Grid>
|
|
<StackPanel
|
|
Grid.Row="1"
|
|
HorizontalAlignment="Center"
|
|
IsEnabled="{Binding Idle}">
|
|
<!-- AutoSquad -->
|
|
<StackPanel
|
|
Margin="2.5,5"
|
|
Orientation="Horizontal"
|
|
Visibility="{c:Binding 'CopilotTabIndex == 0 or CopilotTabIndex == 3'}">
|
|
<CheckBox
|
|
Height="20"
|
|
Content="{DynamicResource AutoSquad}"
|
|
IsChecked="{Binding Form}" />
|
|
<controls:TooltipBlock TooltipText="{DynamicResource AutoSquadTip}" />
|
|
</StackPanel>
|
|
|
|
<!-- UseFormation -->
|
|
<StackPanel
|
|
Height="28"
|
|
Orientation="Horizontal"
|
|
Visibility="{c:Binding '(CopilotTabIndex == 0 or CopilotTabIndex == 3) and Form'}">
|
|
<CheckBox
|
|
Margin="2.5,5"
|
|
Content="{DynamicResource UseFormation}"
|
|
IsChecked="{c:Binding UseFormation}" />
|
|
<ComboBox
|
|
DisplayMemberPath="Display"
|
|
ItemsSource="{Binding FormationSelectList}"
|
|
SelectedValue="{Binding FormationIndex}"
|
|
SelectedValuePath="Value"
|
|
Visibility="{c:Binding UseFormation}" />
|
|
</StackPanel>
|
|
|
|
<!-- IgnoreRequirements -->
|
|
<StackPanel
|
|
Margin="2.5,5"
|
|
Orientation="Horizontal"
|
|
Visibility="{c:Binding 'Form and (CopilotTabIndex == 0 or CopilotTabIndex == 3)'}">
|
|
<CheckBox Content="{DynamicResource Copilot.IgnoreRequirements}" IsChecked="{Binding IgnoreRequirements}" />
|
|
<controls:TooltipBlock TooltipText="{DynamicResource Copilot.IgnoreRequirements.Tip}" />
|
|
</StackPanel>
|
|
|
|
<!-- SupportUnitUsage -->
|
|
<WrapPanel Orientation="Vertical" Visibility="{c:Binding 'Form and (CopilotTabIndex == 0 or CopilotTabIndex == 3)'}">
|
|
<StackPanel Orientation="Horizontal">
|
|
<CheckBox
|
|
Margin="2.5,5"
|
|
Content="{DynamicResource SupportUnitUsage}"
|
|
IsChecked="{Binding UseSupportUnitUsage}" />
|
|
<controls:TooltipBlock TooltipText="{DynamicResource SupportUnitUsage.Tip}" />
|
|
</StackPanel>
|
|
<hc:ComboBox
|
|
MinWidth="100"
|
|
Margin="24,0,0,0"
|
|
DisplayMemberPath="Display"
|
|
ItemsSource="{Binding SupportUnitUsageList}"
|
|
SelectedValue="{Binding SupportUnitUsage}"
|
|
SelectedValuePath="Value"
|
|
Visibility="{c:Binding UseSupportUnitUsage}" />
|
|
</WrapPanel>
|
|
|
|
<!-- AddTrust -->
|
|
<CheckBox
|
|
Margin="2.5,5"
|
|
Content="{DynamicResource AddTrust}"
|
|
IsChecked="{Binding AddTrust}"
|
|
Visibility="{c:Binding 'Form and (CopilotTabIndex == 0 or CopilotTabIndex == 3)'}" />
|
|
|
|
<!-- AddUserAdditional -->
|
|
<WrapPanel Orientation="Horizontal" Visibility="{c:Binding 'Form and (CopilotTabIndex == 0 or CopilotTabIndex == 3)'}">
|
|
<CheckBox
|
|
Margin="2.5,5"
|
|
Content="{DynamicResource AddUserAdditional}"
|
|
IsChecked="{Binding AddUserAdditional}" />
|
|
<StackPanel Orientation="Horizontal">
|
|
<Button
|
|
x:Name="UserAdditionalButton"
|
|
Width="15"
|
|
Height="15"
|
|
MinWidth="20"
|
|
Margin="2.5,5,0,5"
|
|
Padding="0"
|
|
hc:IconElement.Geometry="{StaticResource ConfigGeometry}"
|
|
BorderThickness="0"
|
|
Command="{s:Action OpenUserAdditionalPopup}"
|
|
ToolTip="{Binding UserAdditionalPrettyJson}"
|
|
ToolTipService.ShowOnDisabled="True" />
|
|
<controls:TooltipBlock TooltipText="{DynamicResource AddUserAdditionalTip}" />
|
|
<Popup
|
|
IsOpen="{Binding IsUserAdditionalPopupOpen}"
|
|
Placement="Center"
|
|
PlacementTarget="{Binding ElementName=UserAdditionalButton}"
|
|
PopupAnimation="Slide"
|
|
StaysOpen="False">
|
|
<Border
|
|
MaxWidth="600"
|
|
MaxHeight="500"
|
|
Padding="10"
|
|
Background="{DynamicResource RegionBrush}"
|
|
BorderBrush="{DynamicResource BorderBrush}"
|
|
BorderThickness="1"
|
|
CornerRadius="4">
|
|
<StackPanel>
|
|
<TextBlock Margin="0,0,0,5" Text="{DynamicResource AddUserAdditional}" />
|
|
<DataGrid
|
|
x:Name="UserAdditionalDataGrid"
|
|
MaxHeight="350"
|
|
AutoGenerateColumns="False"
|
|
Background="{DynamicResource RegionBrush}"
|
|
CanUserAddRows="False"
|
|
CanUserDeleteRows="False"
|
|
CanUserResizeColumns="False"
|
|
CanUserResizeRows="False"
|
|
HeadersVisibility="Column"
|
|
ItemsSource="{Binding UserAdditionalItems}"
|
|
RowHeight="40"
|
|
SelectionMode="Single">
|
|
<DataGrid.RowStyle>
|
|
<Style TargetType="DataGridRow">
|
|
<Setter Property="Background" Value="{DynamicResource RegionBrushOpacity25}" />
|
|
<Style.Triggers>
|
|
<Trigger Property="IsSelected" Value="True">
|
|
<Setter Property="Background" Value="{DynamicResource RegionBrushOpacity25}" />
|
|
</Trigger>
|
|
<Trigger Property="IsMouseOver" Value="True">
|
|
<Setter Property="Background" Value="{DynamicResource MouseOverRegionBrushOpacity75}" />
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</DataGrid.RowStyle>
|
|
<DataGrid.Columns>
|
|
<DataGridTextColumn
|
|
Width="Auto"
|
|
Binding="{Binding Name, UpdateSourceTrigger=PropertyChanged}"
|
|
Foreground="{DynamicResource PrimaryTextBrush}"
|
|
Header="{DynamicResource UserAdditional.OperatorName}" />
|
|
<DataGridTemplateColumn Width="80" Header="{DynamicResource UserAdditional.Skill}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<hc:NumericUpDown
|
|
Height="20"
|
|
InputMethod.IsInputMethodEnabled="False"
|
|
Maximum="3"
|
|
Minimum="0"
|
|
Value="{Binding Skill, UpdateSourceTrigger=PropertyChanged}" />
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
<DataGridTemplateColumn Width="140" Header="{DynamicResource CopilotModule}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<ComboBox
|
|
Height="24"
|
|
DisplayMemberPath="Key"
|
|
ItemsSource="{Binding DataContext.ModuleMapping, RelativeSource={RelativeSource AncestorType=DataGrid}}"
|
|
SelectedValue="{Binding Module, UpdateSourceTrigger=PropertyChanged}"
|
|
SelectedValuePath="Value">
|
|
<!-- TODO: 后续可改为绑定到单独的 Module 选项列表 -->
|
|
</ComboBox>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
<DataGridTemplateColumn Width="Auto" Header="{DynamicResource UserAdditional.Action}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<Button
|
|
Width="20"
|
|
Height="20"
|
|
MinWidth="20"
|
|
Padding="0"
|
|
hc:IconElement.Geometry="{StaticResource CloseGeometry}"
|
|
BorderThickness="0"
|
|
Command="{s:Action RemoveUserAdditionalItem}"
|
|
CommandParameter="{Binding}" />
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
</DataGrid.Columns>
|
|
</DataGrid>
|
|
<Grid Margin="0,5,0,0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<Button
|
|
Grid.Column="0"
|
|
Width="80"
|
|
Height="25"
|
|
Padding="0"
|
|
HorizontalAlignment="Left"
|
|
Command="{s:Action AddUserAdditionalItem}"
|
|
Content="{DynamicResource UserAdditional.Add}" />
|
|
<Button
|
|
Grid.Column="1"
|
|
Width="60"
|
|
Height="25"
|
|
Padding="0"
|
|
Command="{s:Action SaveUserAdditional}"
|
|
Content="{DynamicResource Ok}" />
|
|
<Button
|
|
Grid.Column="2"
|
|
Width="60"
|
|
Height="25"
|
|
Margin="5,0,0,0"
|
|
Padding="0"
|
|
Command="{s:Action CancelUserAdditionalEdit}"
|
|
Content="{DynamicResource Cancel}" />
|
|
</Grid>
|
|
</StackPanel>
|
|
</Border>
|
|
</Popup>
|
|
</StackPanel>
|
|
|
|
</WrapPanel>
|
|
|
|
<!-- UseCopilotList -->
|
|
<StackPanel
|
|
Margin="2.5,5"
|
|
IsEnabled="{c:Binding 'CopilotTabIndex == 0 or CopilotTabIndex == 2'}"
|
|
Orientation="Horizontal">
|
|
<CheckBox Content="{DynamicResource UseCopilotList}" IsChecked="{Binding UseCopilotList}" />
|
|
<controls:TooltipBlock TooltipText="{DynamicResource UseCopilotListTip}" />
|
|
</StackPanel>
|
|
|
|
<!-- UseSanityPotion -->
|
|
<CheckBox
|
|
Margin="2.5,5"
|
|
Content="{DynamicResource UseSanityPotion}"
|
|
IsChecked="{Binding UseSanityPotion}"
|
|
Visibility="{c:Binding 'UseCopilotList and CopilotTabIndex == 0'}" />
|
|
|
|
<!-- Loop / LoopTimes -->
|
|
<StackPanel Orientation="Horizontal" Visibility="{c:Binding '!UseCopilotList and CopilotTabIndex != 0 and CopilotTabIndex != 2'}">
|
|
<CheckBox
|
|
Margin="2.5,5"
|
|
Content="{DynamicResource LoopTimes}"
|
|
IsChecked="{Binding Loop}" />
|
|
<hc:NumericUpDown
|
|
Height="20"
|
|
InputMethod.IsInputMethodEnabled="False"
|
|
Maximum="9999"
|
|
Minimum="0"
|
|
Value="{Binding LoopTimes}" />
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<Grid
|
|
Grid.Column="1"
|
|
Margin="5,0,0,10"
|
|
Visibility="{c:Binding '(UseCopilotList and (CopilotTabIndex == 0 or CopilotTabIndex == 2)) or CopilotTabIndex == 1 or CopilotTabIndex == 3'}">
|
|
<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"
|
|
d:ItemsSource="{d:SampleData ItemCount=7}"
|
|
dd:DragDrop.DragDropContext="{Binding RelativeSource={RelativeSource Self}}"
|
|
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"
|
|
IsEnabled="{c:Binding StartEnabled}"
|
|
ItemsSource="{Binding Path=CopilotItemViewModels}"
|
|
Style="{DynamicResource NoSelectedHighlightListBoxStyle}"
|
|
ToolTip="{DynamicResource LabelSequenceTip}">
|
|
<ListBox.ItemContainerStyle>
|
|
<Style BasedOn="{StaticResource NoSelectedHighlightListBoxItemStyle}" TargetType="ListBoxItem">
|
|
<Setter Property="Background" Value="Transparent" />
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding IsRaid}" Value="True">
|
|
<Setter Property="Background" Value="#33FF0000" />
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</ListBox.ItemContainerStyle>
|
|
<ListBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<CheckBox
|
|
Grid.Column="0"
|
|
IsChecked="{Binding IsChecked}"
|
|
IsEnabled="{Binding ElementName=CopilotList, Path=DataContext.Idle}"
|
|
IsHitTestVisible="{Binding ElementName=CopilotList, Path=DataContext.Idle}"
|
|
ToolTip="{c:Binding CopilotId}"
|
|
Visibility="{c:Binding 'DataContext.CopilotTabIndex != 1 and DataContext.CopilotTabIndex != 3',
|
|
RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}">
|
|
<TextBlock Text="{Binding Name}" ToolTip="{Binding CopilotId}" />
|
|
</CheckBox>
|
|
<controls:TextBlock
|
|
Grid.Column="0"
|
|
HorizontalAlignment="Left"
|
|
Text="{Binding Name}"
|
|
ToolTip="{Binding CopilotId}"
|
|
Visibility="{c:Binding 'DataContext.CopilotTabIndex == 1 or DataContext.CopilotTabIndex == 3',
|
|
RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" />
|
|
<Button
|
|
Grid.Column="1"
|
|
Margin="0"
|
|
Padding="5,6"
|
|
hc:IconElement.Geometry="{StaticResource CopilotListItemToParse}"
|
|
hc:VisualElement.HighlightBackground="Transparent"
|
|
hc:VisualElement.HighlightForeground="{DynamicResource PrimaryBrush}"
|
|
Background="Transparent"
|
|
BorderThickness="0"
|
|
Foreground="{DynamicResource SecondaryTextBrush}"
|
|
IsEnabled="{Binding ElementName=CopilotList, Path=DataContext.Idle}"
|
|
MouseRightButtonUp="{s:Action SelectCopilotTask}"
|
|
PreviewMouseLeftButtonUp="{s:Action SelectCopilotTask}"
|
|
Tag="{c:Binding Index}" />
|
|
<Button
|
|
Grid.Column="2"
|
|
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"
|
|
MinWidth="80"
|
|
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>
|
|
|
|
<controls:TextBlock Grid.Row="2" 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="{c:Binding 'UseCopilotList ? 3 : 2'}"
|
|
Grid.ColumnSpan="{c:Binding 'UseCopilotList ? 1 : 2'}"
|
|
d:Grid.Column="3"
|
|
d:Grid.ColumnSpan="1">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<!-- 覆盖层:悬浮窗按钮,绑定到信息流区域右上角(不占布局) -->
|
|
<Grid
|
|
Margin="0,10,0,0"
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Top"
|
|
Panel.ZIndex="200">
|
|
<Path
|
|
Width="15"
|
|
Height="15"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
Fill="{DynamicResource PrimaryTextBrush}"
|
|
IsHitTestVisible="False"
|
|
Stretch="Uniform"
|
|
StrokeThickness="1">
|
|
<Path.Style>
|
|
<Style TargetType="Path">
|
|
<Setter Property="Data" Value="{StaticResource CarbonUnlink}" />
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding IsOverlayEnabled, Source={x:Static helper:Instances.TaskQueueViewModel}}" Value="True">
|
|
<Setter Property="Data" Value="{StaticResource CarbonLink}" />
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Path.Style>
|
|
</Path>
|
|
<Button
|
|
Width="27"
|
|
Height="27"
|
|
Click="{s:Action ToggleOverlay,
|
|
Target={x:Type ui_vms:TaskQueueViewModel}}"
|
|
MouseRightButtonDown="{s:Action ChooseOverlayTarget,
|
|
Target={x:Type ui_vms:TaskQueueViewModel}}" />
|
|
<controls:TooltipBlock
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Top"
|
|
MouseLeftButtonDown="{s:Action ToggleOverlay,
|
|
Target={x:Type ui_vms:TaskQueueViewModel}}"
|
|
MouseRightButtonDown="{s:Action ChooseOverlayTarget,
|
|
Target={x:Type ui_vms:TaskQueueViewModel}}"
|
|
NormalOpacity="0.25"
|
|
TooltipText="{DynamicResource ProcessPickerToolTip}" />
|
|
</Grid>
|
|
<hc:ScrollViewer
|
|
properties:AutoScroll.AutoScroll="True"
|
|
HorizontalScrollBarVisibility="Disabled"
|
|
IsInertiaEnabled="True"
|
|
PanningMode="VerticalOnly">
|
|
<ItemsControl ItemsSource="{Binding 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>
|
|
<Grid
|
|
Grid.Row="1"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Bottom"
|
|
Visibility="{c:Binding CouldLikeWebJson}">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<controls:TextBlock
|
|
Margin="10"
|
|
VerticalAlignment="Center"
|
|
Block.TextAlignment="Center"
|
|
Text="{DynamicResource DoYouLikeThisWebJson}"
|
|
TextWrapping="Wrap" />
|
|
<Button
|
|
Grid.Column="1"
|
|
Width="50"
|
|
Height="30"
|
|
Margin="10"
|
|
Command="{s:Action LikeWebJson}"
|
|
Content="👍" />
|
|
<Button
|
|
Grid.Column="2"
|
|
Width="50"
|
|
Height="30"
|
|
Margin="10"
|
|
Command="{s:Action DislikeWebJson}"
|
|
Content="👎" />
|
|
</Grid>
|
|
|
|
<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>
|