mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-16 17:57:01 +08:00
923 lines
63 KiB
XML
923 lines
63 KiB
XML
<UserControl
|
|
x:Class="MaaWpfGui.Views.UI.TaskQueueView"
|
|
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:enums="clr-namespace:MaaWpfGui.Constants.Enums"
|
|
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:taskQueue="clr-namespace:MaaWpfGui.Views.UserControl.TaskQueue"
|
|
xmlns:ui_vms="clr-namespace:MaaWpfGui.ViewModels.UI"
|
|
xmlns:userControl="clr-namespace:MaaWpfGui.Views.UserControl"
|
|
MinWidth="720"
|
|
d:Background="White"
|
|
d:DataContext="{d:DesignInstance {x:Type ui_vms:TaskQueueViewModel}}"
|
|
d:DesignHeight="495"
|
|
d:DesignWidth="800"
|
|
mc:Ignorable="d">
|
|
<Grid>
|
|
<userControl:GuideUserControl
|
|
x:Name="Guide"
|
|
VerticalAlignment="Stretch"
|
|
s:View.ActionTarget="{Binding DataContext, RelativeSource={RelativeSource Self}}"
|
|
DataContext="{Binding TaskSettingDataContext}"
|
|
Visibility="{c:Binding TaskSettingVisibilities.Guide}" />
|
|
<Grid Margin="20" Visibility="{c:Binding !TaskSettingVisibilities.Guide}">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="*" />
|
|
<!--<ColumnDefinition Width="5" />-->
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Grid Grid.Column="0" Margin="10">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<Border
|
|
Width="210"
|
|
MaxWidth="210"
|
|
Background="{DynamicResource RegionBrushOpacity25}"
|
|
BorderBrush="{DynamicResource BorderBrush}"
|
|
BorderThickness="1"
|
|
CornerRadius="4">
|
|
<Grid Width="190" Margin="0">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="40" />
|
|
</Grid.RowDefinitions>
|
|
<ListBox
|
|
x:Name="TaskList"
|
|
Grid.Row="0"
|
|
Width="190"
|
|
MinHeight="220"
|
|
Margin="0,10,0,0"
|
|
HorizontalAlignment="Center"
|
|
d:ItemsSource="{d:SampleData ItemCount=16}"
|
|
dd:DragDrop.DragDropContext="{Binding RelativeSource={RelativeSource Self}}"
|
|
dd:DragDrop.IsDragSource="{Binding Idle}"
|
|
dd:DragDrop.IsDropTarget="{Binding Idle}"
|
|
Background="Transparent"
|
|
BorderThickness="0"
|
|
ItemsSource="{Binding TaskItemViewModels}"
|
|
Style="{DynamicResource NoSelectedHighlightListBoxStyle}"
|
|
ToolTip="{DynamicResource LabelSequenceTip}">
|
|
<ListBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<Border CornerRadius="4">
|
|
<Border.Style>
|
|
<Style TargetType="Border">
|
|
<Setter Property="Background" Value="Transparent" />
|
|
<Setter Property="Opacity" Value="1" />
|
|
<Style.Triggers>
|
|
<!-- 运行中 - 蓝色 -->
|
|
<DataTrigger Binding="{Binding StatusDisplay}" Value="{x:Static enums:TaskItemStatus.InProgress}">
|
|
<Setter Property="Background" Value="{DynamicResource TaskQueue.TaskItemStatus.InProgress}" />
|
|
</DataTrigger>
|
|
<!-- 成功完成 - 绿色 -->
|
|
<DataTrigger Binding="{Binding StatusDisplay}" Value="{x:Static enums:TaskItemStatus.Completed}">
|
|
<Setter Property="Background" Value="{DynamicResource TaskQueue.TaskItemStatus.Completed}" />
|
|
</DataTrigger>
|
|
<!-- 出现错误 - 红色 -->
|
|
<DataTrigger Binding="{Binding StatusDisplay}" Value="{x:Static enums:TaskItemStatus.Error}">
|
|
<Setter Property="Background" Value="{DynamicResource TaskQueue.TaskItemStatus.Error}" />
|
|
</DataTrigger>
|
|
<!-- 已跳过 - 灰色 -->
|
|
<DataTrigger Binding="{Binding StatusDisplay}" Value="{x:Static enums:TaskItemStatus.Skipped}">
|
|
<Setter Property="Opacity" Value="0.5" />
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Border.Style>
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<CheckBox
|
|
Grid.Column="0"
|
|
MaxWidth="140"
|
|
Margin="6,0,0,0"
|
|
HorizontalAlignment="Left"
|
|
IsChecked="{Binding IsEnable}"
|
|
IsHitTestVisible="{Binding ElementName=TaskList, Path=DataContext.Idle}"
|
|
MouseRightButtonUp="{s:Action ToggleCheckBoxNullOnRightClick,
|
|
Target={x:Type helper:CheckBoxHelper}}">
|
|
<controls:TextBlock Text="{Binding Name}" Visibility="Hidden" />
|
|
<CheckBox.ToolTip>
|
|
<ToolTip>
|
|
<ToolTip.Style>
|
|
<Style BasedOn="{StaticResource ToolTipBaseStyle}" TargetType="{x:Type ToolTip}">
|
|
<Setter Property="Content" Value="{DynamicResource CheckBoxesNotSavedAsNull}" />
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding Source={x:Static ui_vms:SettingsViewModel.GuiSettings}, Path=MainTasksInvertNullFunction}" Value="True">
|
|
<Setter Property="Content" Value="{DynamicResource CheckBoxesNotSavedAsNullInvert}" />
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</ToolTip.Style>
|
|
</ToolTip>
|
|
</CheckBox.ToolTip>
|
|
</CheckBox>
|
|
|
|
<controls:TextBlock
|
|
Grid.Column="0"
|
|
Grid.ColumnSpan="2"
|
|
Margin="26,0,0,0"
|
|
HorizontalAlignment="Left"
|
|
Background="Transparent"
|
|
IsHitTestVisible="False"
|
|
Text="{Binding Name}">
|
|
<TextBlock.Style>
|
|
<Style BasedOn="{StaticResource TextBlockBaseStyle}" TargetType="{x:Type TextBlock}">
|
|
<Style.Triggers>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition Binding="{Binding Source={x:Static ui_vms:SettingsViewModel.GuiSettings}, Path=MainTasksInvertNullFunction}" Value="True" />
|
|
<Condition Binding="{Binding IsEnable}" Value="{x:Null}" />
|
|
</MultiDataTrigger.Conditions>
|
|
<Setter Property="Foreground" Value="{DynamicResource TraceLogBrush}" />
|
|
</MultiDataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</TextBlock.Style>
|
|
</controls:TextBlock>
|
|
|
|
<hc:ButtonGroup Grid.Column="1" HorizontalAlignment="Stretch">
|
|
<RadioButton
|
|
x:Name="TaskSettingRadioButton"
|
|
Margin="0"
|
|
HorizontalAlignment="Stretch"
|
|
HorizontalContentAlignment="Right"
|
|
hc:IconElement.Geometry="{StaticResource ConfigGeometry}"
|
|
hc:VisualElement.HighlightBackground="Transparent"
|
|
hc:VisualElement.HighlightForeground="{DynamicResource PrimaryBrush}"
|
|
Background="Transparent"
|
|
BorderThickness="0"
|
|
ContextMenuService.IsEnabled="{Binding DataContext.Idle, RelativeSource={RelativeSource AncestorType=UserControl}}"
|
|
Foreground="{DynamicResource SecondaryTextBrush}"
|
|
GroupName="TaskSettings"
|
|
IsChecked="{Binding EnableSetting}"
|
|
Style="{DynamicResource RadioGroupItemSingle}">
|
|
<RadioButton.ToolTip>
|
|
<ToolTip>
|
|
<StackPanel>
|
|
<TextBlock FontWeight="SemiBold" Text="{DynamicResource LeftClick}" />
|
|
<TextBlock Text="{DynamicResource TaskSettings}" />
|
|
|
|
<TextBlock FontWeight="SemiBold" Text="{DynamicResource RightClick}" />
|
|
<TextBlock>
|
|
<Run Text="{DynamicResource RunTaskOnce}" />
|
|
<Run Text=" / " />
|
|
<Run Text="{DynamicResource Rename}" />
|
|
<Run Text=" / " />
|
|
<Run Text="{DynamicResource Delete}" />
|
|
</TextBlock>
|
|
</StackPanel>
|
|
</ToolTip>
|
|
</RadioButton.ToolTip>
|
|
<RadioButton.ContextMenu>
|
|
<ContextMenu Width="150">
|
|
<MenuItem
|
|
Command="{s:Action RunTaskOnce,
|
|
Target={x:Static helper:Instances.TaskQueueViewModel}}"
|
|
CommandParameter="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource AncestorType=ContextMenu}}"
|
|
Header="{DynamicResource RunTaskOnce}" />
|
|
<MenuItem
|
|
Command="{s:Action RenameTask,
|
|
Target={x:Static helper:Instances.TaskQueueViewModel}}"
|
|
CommandParameter="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource AncestorType=ContextMenu}}"
|
|
Header="{DynamicResource Rename}" />
|
|
<MenuItem
|
|
Command="{s:Action RemoveTask,
|
|
Target={x:Static helper:Instances.TaskQueueViewModel}}"
|
|
CommandParameter="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource AncestorType=ContextMenu}}"
|
|
Header="{DynamicResource Delete}" />
|
|
</ContextMenu>
|
|
</RadioButton.ContextMenu>
|
|
</RadioButton>
|
|
</hc:ButtonGroup>
|
|
</Grid>
|
|
</Border>
|
|
</DataTemplate>
|
|
</ListBox.ItemTemplate>
|
|
<ListBox.ItemContainerStyle>
|
|
<Style BasedOn="{StaticResource NoSelectedHighlightListBoxItemStyle}" TargetType="{x:Type ListBoxItem}">
|
|
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
|
|
<Setter Property="Padding" Value="0" />
|
|
<Setter Property="MinHeight" Value="24.5" />
|
|
<Setter Property="Height" Value="Auto" />
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{c:Binding 'Items.Count > 9', RelativeSource={RelativeSource AncestorType={x:Type ListBox}}}" Value="True">
|
|
<Setter Property="MaxHeight" Value="{c:Binding 'ActualHeight / (Items.Count + 1.5) less 24.5 ? 24.5 : ActualHeight / (Items.Count + 1.5)', RelativeSource={RelativeSource AncestorType={x:Type ListBox}}}" />
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</ListBox.ItemContainerStyle>
|
|
</ListBox>
|
|
<Grid Grid.Row="1">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<hc:ContextMenuButton
|
|
Grid.Column="0"
|
|
Width="30"
|
|
Height="30"
|
|
Padding="0"
|
|
VerticalAlignment="Top"
|
|
hc:BorderElement.CornerRadius="4,0,0,4"
|
|
hc:IconElement.Geometry="{StaticResource TaskQueueAddTaskIcon}"
|
|
Foreground="{DynamicResource PrimaryTextBrush}"
|
|
IsEnabled="{Binding Idle}"
|
|
Style="{StaticResource MaaButtonDefaultStyle}">
|
|
<hc:ContextMenuButton.Menu>
|
|
<ContextMenu
|
|
Width="200"
|
|
Padding="0"
|
|
HorizontalOffset="-7"
|
|
Placement="Bottom"
|
|
VerticalOffset="-7">
|
|
<ContextMenu.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<StackPanel Orientation="Vertical" />
|
|
</ItemsPanelTemplate>
|
|
</ContextMenu.ItemsPanel>
|
|
<MenuItem
|
|
Padding="0,3"
|
|
Command="{s:Action AddTaskQueueTask}"
|
|
CommandParameter="{Binding TaskTypeList[0].Value}"
|
|
Header="{Binding TaskTypeList[0].Display}" />
|
|
<MenuItem
|
|
Padding="0,3"
|
|
Command="{s:Action AddTaskQueueTask}"
|
|
CommandParameter="{Binding TaskTypeList[1].Value}"
|
|
Header="{Binding TaskTypeList[1].Display}" />
|
|
<MenuItem
|
|
Padding="0,3"
|
|
Command="{s:Action AddTaskQueueTask}"
|
|
CommandParameter="{Binding TaskTypeList[2].Value}"
|
|
Header="{Binding TaskTypeList[2].Display}" />
|
|
<MenuItem
|
|
Padding="0,3"
|
|
Command="{s:Action AddTaskQueueTask}"
|
|
CommandParameter="{Binding TaskTypeList[3].Value}"
|
|
Header="{Binding TaskTypeList[3].Display}" />
|
|
<MenuItem
|
|
Padding="0,3"
|
|
Command="{s:Action AddTaskQueueTask}"
|
|
CommandParameter="{Binding TaskTypeList[4].Value}"
|
|
Header="{Binding TaskTypeList[4].Display}" />
|
|
<MenuItem
|
|
Padding="0,3"
|
|
Command="{s:Action AddTaskQueueTask}"
|
|
CommandParameter="{Binding TaskTypeList[5].Value}"
|
|
Header="{Binding TaskTypeList[5].Display}" />
|
|
<MenuItem
|
|
Padding="0,3"
|
|
Command="{s:Action AddTaskQueueTask}"
|
|
CommandParameter="{Binding TaskTypeList[6].Value}"
|
|
Header="{Binding TaskTypeList[6].Display}" />
|
|
<MenuItem
|
|
Padding="0,3"
|
|
Command="{s:Action AddTaskQueueTask}"
|
|
CommandParameter="{Binding TaskTypeList[7].Value}"
|
|
Header="{Binding TaskTypeList[7].Display}" />
|
|
<MenuItem
|
|
Padding="0,3"
|
|
Command="{s:Action AddTaskQueueTask}"
|
|
CommandParameter="{Binding TaskTypeList[8].Value}"
|
|
Header="{Binding TaskTypeList[8].Display}" />
|
|
<MenuItem
|
|
Padding="0,3"
|
|
Command="{s:Action AddTaskQueueTask}"
|
|
CommandParameter="{Binding TaskTypeList[9].Value}"
|
|
Header="{Binding TaskTypeList[9].Display}"
|
|
Visibility="{c:Binding ShowDebugTask}" />
|
|
</ContextMenu>
|
|
</hc:ContextMenuButton.Menu>
|
|
</hc:ContextMenuButton>
|
|
<Button
|
|
Grid.Column="1"
|
|
Height="30"
|
|
Margin="-1,0"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Top"
|
|
hc:BorderElement.CornerRadius="0"
|
|
Command="{s:Action SelectedAll}"
|
|
Content="{DynamicResource SelectAll}"
|
|
IsEnabled="{Binding Idle}" />
|
|
<hc:SplitButton
|
|
Grid.Column="2"
|
|
Height="30"
|
|
Padding="0,0,5,0"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Top"
|
|
hc:BorderElement.CornerRadius="0,4,4,0"
|
|
Background="{DynamicResource RegionBrushOpacity25}"
|
|
Command="{s:Action InverseSelected}"
|
|
Content="{Binding InverseShowText}"
|
|
IsEnabled="{Binding Idle}"
|
|
Visibility="{c:Binding ShowInverse}">
|
|
<hc:SplitButton.DropDownContent>
|
|
<Menu>
|
|
<Menu.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<StackPanel Orientation="Vertical" />
|
|
</ItemsPanelTemplate>
|
|
</Menu.ItemsPanel>
|
|
<MenuItem Command="{s:Action ChangeInverseMode}">
|
|
<MenuItem.HeaderTemplate>
|
|
<DataTemplate>
|
|
<TextBlock
|
|
Padding="10,0,0,0"
|
|
HorizontalAlignment="Center"
|
|
Text="{Binding DataContext.InverseMenuText, RelativeSource={RelativeSource AncestorType=hc:SplitButton}}"
|
|
TextAlignment="Center" />
|
|
</DataTemplate>
|
|
</MenuItem.HeaderTemplate>
|
|
</MenuItem>
|
|
</Menu>
|
|
</hc:SplitButton.DropDownContent>
|
|
</hc:SplitButton>
|
|
<Button
|
|
Grid.Column="2"
|
|
Height="30"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Top"
|
|
Command="{s:Action InverseSelected}"
|
|
Content="{Binding InverseShowText}"
|
|
IsEnabled="{Binding Idle}"
|
|
Visibility="{c:Binding !ShowInverse}" />
|
|
</Grid>
|
|
</Grid>
|
|
</Border>
|
|
<StackPanel
|
|
Grid.Row="1"
|
|
Width="210"
|
|
HorizontalAlignment="Stretch"
|
|
Orientation="Horizontal">
|
|
<StackPanel
|
|
Width="185"
|
|
Margin="0,10,0,10"
|
|
HorizontalAlignment="Left"
|
|
Orientation="Vertical">
|
|
<controls:TextBlock
|
|
Margin="20,5,0,0"
|
|
HorizontalAlignment="Center"
|
|
Text="{Binding PostActionSetting.ActionTitle}"
|
|
TextAlignment="Center" />
|
|
<hc:Divider Margin="10,2,10,5" />
|
|
<controls:TextBlock
|
|
Width="160"
|
|
Margin="20,0,0,0"
|
|
HorizontalAlignment="Center"
|
|
Text="{Binding PostActionSetting.ActionDescription}"
|
|
TextAlignment="Center"
|
|
TextWrapping="Wrap" />
|
|
</StackPanel>
|
|
<hc:ButtonGroup HorizontalAlignment="Right" VerticalAlignment="Center">
|
|
<!-- ReSharper disable once Xaml.StaticResourceNotResolved -->
|
|
<RadioButton
|
|
hc:IconElement.Geometry="{StaticResource ConfigGeometry}"
|
|
hc:VisualElement.HighlightBackground="Transparent"
|
|
hc:VisualElement.HighlightForeground="{DynamicResource PrimaryBrush}"
|
|
Background="Transparent"
|
|
BorderThickness="0"
|
|
Foreground="{DynamicResource SecondaryTextBrush}"
|
|
GroupName="TaskSettings"
|
|
IsChecked="{Binding EnableAfterActionSetting}"
|
|
Style="{DynamicResource RadioGroupItemSingle}"
|
|
ToolTip="{DynamicResource TaskSettings}" />
|
|
</hc:ButtonGroup>
|
|
</StackPanel>
|
|
|
|
<Grid
|
|
Grid.Row="2"
|
|
Height="Auto"
|
|
HorizontalAlignment="Center">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<Button
|
|
Width="100"
|
|
Height="50"
|
|
Margin="5"
|
|
Command="{s:Action LinkStart}"
|
|
Content="{DynamicResource LinkStart}"
|
|
IsEnabled="{c:Binding 'Inited and !TaskSettingVisibilities.Guide'}"
|
|
Visibility="{c:Binding '!Inited or (Idle and !Stopping)'}">
|
|
<Button.Style>
|
|
<Style BasedOn="{StaticResource MaaButtonDefaultStyle}" TargetType="Button">
|
|
<Setter Property="hc:IconElement.Geometry" Value="{x:Null}" />
|
|
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}" />
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding ShowDeepSleepIcon}" Value="True">
|
|
<Setter Property="hc:IconElement.Geometry" Value="{StaticResource DeepSleep}" />
|
|
<Setter Property="Foreground" Value="{DynamicResource DeepSleepBrush}" />
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Button.Style>
|
|
</Button>
|
|
<Button
|
|
Width="100"
|
|
Height="50"
|
|
Margin="5"
|
|
Command="{s:Action ManualStop}"
|
|
Content="{DynamicResource Stop}"
|
|
IsEnabled="{c:Binding '!Stopping'}"
|
|
Visibility="{c:Binding 'Inited and (!Idle or Stopping) and !(RoguelikeInCombatAndShowWait and !Waiting)'}" />
|
|
<Button
|
|
Width="100"
|
|
Height="50"
|
|
Margin="5"
|
|
Command="{s:Action WaitAndStop}"
|
|
Content="{DynamicResource WaitAndStop}"
|
|
Visibility="{c:Binding 'Inited and !Idle and (RoguelikeInCombatAndShowWait and !Waiting)'}" />
|
|
<CheckBox
|
|
Grid.Row="1"
|
|
VerticalAlignment="Center"
|
|
Content="Auto Reload Resource"
|
|
IsChecked="{Binding EnableAutoReload}"
|
|
Visibility="{c:Binding CanShowAutoReload}" />
|
|
</Grid>
|
|
|
|
<!--<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment ="Center" >-->
|
|
<!--<CheckBox IsChecked="{Binding Shutdown}" Content="自动关机" HorizontalAlignment="Center" VerticalAlignment="Center">
|
|
<CheckBox.InputBindings>
|
|
<KeyBinding Key="H" Command="{s:Action ShowButton}" />
|
|
</CheckBox.InputBindings>
|
|
</CheckBox>
|
|
<CheckBox IsChecked="{Binding Hibernate}" Content="休眠" Visibility="{Binding Visible}" HorizontalAlignment="Center" VerticalAlignment="Center" />
|
|
<CheckBox IsChecked="{Binding Suspend}" Content="待机" Visibility="{Binding Visible}" HorizontalAlignment="Center" VerticalAlignment="Center" />-->
|
|
<!--</StackPanel>-->
|
|
</Grid>
|
|
|
|
<Grid Grid.Column="1">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="*" MinHeight="360" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" MaxHeight="250" />
|
|
</Grid.RowDefinitions>
|
|
<hc:ScrollViewer
|
|
Grid.Row="0"
|
|
Grid.RowSpan="{c:Binding 'TaskSettingVisibilities.PostAction ? 2:1'}"
|
|
Margin="10"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Top"
|
|
HorizontalScrollBarVisibility="Auto"
|
|
IsInertiaEnabled="True"
|
|
PanningMode="Both"
|
|
VerticalScrollBarVisibility="Auto">
|
|
<hc:SimpleStackPanel Width="220" Margin="0,0,10,0">
|
|
<taskQueue:FightSettingsUserControl
|
|
d:Visibility="Visible"
|
|
DataContext="{Binding FightTask}"
|
|
Visibility="{c:Binding DataContext.TaskSettingVisibilities.Fight,
|
|
RelativeSource={RelativeSource Mode=FindAncestor,
|
|
AncestorType={x:Type UserControl}}}" />
|
|
<taskQueue:RecruitSettingsUserControl
|
|
DataContext="{Binding RecruitTask}"
|
|
IsEnabled="{Binding DataContext.Idle, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
|
|
Visibility="{c:Binding DataContext.TaskSettingVisibilities.Recruit,
|
|
RelativeSource={RelativeSource Mode=FindAncestor,
|
|
AncestorType={x:Type UserControl}}}" />
|
|
<taskQueue:StartUpTaskUserControl
|
|
DataContext="{Binding StartUpTask}"
|
|
IsEnabled="{Binding DataContext.Idle, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
|
|
Visibility="{c:Binding DataContext.TaskSettingVisibilities.StartUp,
|
|
RelativeSource={RelativeSource Mode=FindAncestor,
|
|
AncestorType={x:Type UserControl}}}" />
|
|
<taskQueue:InfrastSettingsUserControl
|
|
DataContext="{Binding InfrastTask}"
|
|
IsEnabled="{Binding DataContext.Idle, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
|
|
Visibility="{c:Binding DataContext.TaskSettingVisibilities.Infrast,
|
|
RelativeSource={RelativeSource Mode=FindAncestor,
|
|
AncestorType={x:Type UserControl}}}" />
|
|
<taskQueue:MallSettingsUserControl
|
|
DataContext="{Binding MallTask}"
|
|
IsEnabled="{Binding DataContext.Idle, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
|
|
Visibility="{c:Binding DataContext.TaskSettingVisibilities.Mall,
|
|
RelativeSource={RelativeSource Mode=FindAncestor,
|
|
AncestorType={x:Type UserControl}}}" />
|
|
<taskQueue:AwardSettingsUserControl
|
|
DataContext="{Binding AwardTask}"
|
|
IsEnabled="{Binding DataContext.Idle, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
|
|
Visibility="{c:Binding DataContext.TaskSettingVisibilities.Award,
|
|
RelativeSource={RelativeSource Mode=FindAncestor,
|
|
AncestorType={x:Type UserControl}}}" />
|
|
<taskQueue:RoguelikeSettingsUserControl DataContext="{Binding RoguelikeTask}" Visibility="{c:Binding DataContext.TaskSettingVisibilities.Roguelike, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}" />
|
|
<taskQueue:ReclamationSettingsUserControl DataContext="{Binding ReclamationTask}" Visibility="{c:Binding DataContext.TaskSettingVisibilities.Reclamation, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}" />
|
|
<taskQueue:UserDataUpdateSettingsUserControl
|
|
DataContext="{Binding UserDataUpdateTask}"
|
|
IsEnabled="{Binding DataContext.Idle, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
|
|
Visibility="{c:Binding DataContext.TaskSettingVisibilities.UserDataUpdate,
|
|
RelativeSource={RelativeSource Mode=FindAncestor,
|
|
AncestorType={x:Type UserControl}}}" />
|
|
<taskQueue:CustomUserControl DataContext="{Binding CustomTask}" Visibility="{c:Binding DataContext.TaskSettingVisibilities.Custom, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}" />
|
|
<taskQueue:PostActionUserControl DataContext="{Binding PostActionSetting}" Visibility="{c:Binding DataContext.TaskSettingVisibilities.PostAction, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}" />
|
|
</hc:SimpleStackPanel>
|
|
</hc:ScrollViewer>
|
|
<hc:ButtonGroup
|
|
Grid.Row="1"
|
|
Width="220"
|
|
Margin="0,0,10,0"
|
|
Orientation="Horizontal"
|
|
Visibility="{c:Binding !TaskSettingVisibilities.PostAction,
|
|
FalseToVisibility=Hidden}">
|
|
<RadioButton
|
|
hc:VisualElement.HighlightBackground="{DynamicResource RegionBrushOpacity25}"
|
|
Background="{DynamicResource RegionBrushOpacity25}"
|
|
Content="{DynamicResource GeneralSettings}"
|
|
IsChecked="{c:Binding !TaskSettingVisibilities.EnableAdvancedSettings}"
|
|
IsEnabled="True" />
|
|
<RadioButton
|
|
hc:VisualElement.HighlightBackground="{DynamicResource RegionBrushOpacity25}"
|
|
Background="{DynamicResource RegionBrushOpacity25}"
|
|
Content="{DynamicResource AdvancedSettings}"
|
|
IsChecked="{c:Binding TaskSettingVisibilities.EnableAdvancedSettings}"
|
|
IsEnabled="{c:Binding TaskSettingVisibilities.AdvancedSettingsVisibility}" />
|
|
</hc:ButtonGroup>
|
|
|
|
<Grid
|
|
Grid.Row="2"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Bottom">
|
|
<hc:ScrollViewer
|
|
Width="200"
|
|
Margin="0,10,10,10"
|
|
PanningMode="Both">
|
|
<controls:TextBlock
|
|
d:Text="{DynamicResource TodaysStageTip}"
|
|
Text="{Binding StagesOfToday}"
|
|
TextWrapping="Wrap" />
|
|
</hc:ScrollViewer>
|
|
<Border Width="200" Margin="0,10,30,10">
|
|
<controls:TooltipBlock
|
|
HorizontalAlignment="Right"
|
|
VerticalContentAlignment="Top"
|
|
NormalOpacity="0.5">
|
|
<controls:TooltipBlock.TooltipText>
|
|
<MultiBinding StringFormat="{}{0}
{1}: {2}">
|
|
<Binding Source="{StaticResource InventoryUpdateTip}" />
|
|
<Binding Source="{StaticResource LastSyncTime}" />
|
|
<Binding Path="LastDepotSyncTimeText" Source="{x:Static helper:Instances.ToolboxViewModel}" />
|
|
</MultiBinding>
|
|
</controls:TooltipBlock.TooltipText>
|
|
</controls:TooltipBlock>
|
|
</Border>
|
|
</Grid>
|
|
</Grid>
|
|
|
|
<!--<GridSplitter Grid.Column="2" Width="5" HorizontalAlignment="Stretch" />-->
|
|
<!--<Rectangle Grid.Column="2" VerticalAlignment="Stretch" Fill="{DynamicResource BorderBrush}" Width="4" />-->
|
|
<Grid
|
|
Grid.Column="2"
|
|
Margin="10,10,0,10"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Top"
|
|
Visibility="{c:Binding !TaskSettingVisibilities.Guide}">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<!-- Logs (download + feed cards) -->
|
|
<Grid Grid.Row="1">
|
|
<!-- 内容层:下载卡片 + 信息流 -->
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<!-- Download area: shown when there is a download log item -->
|
|
<ContentControl
|
|
Grid.Row="0"
|
|
Margin="0,0,0,10"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Top"
|
|
Content="{Binding DownloadLogItemViewModel}"
|
|
Visibility="{c:Binding 'DownloadLogItemViewModel.Content.Length > 0'}">
|
|
<ContentControl.ContentTemplate>
|
|
<DataTemplate>
|
|
<StackPanel>
|
|
<Grid Visibility="{c:Binding !UseCardLog, Source={x:Static ui_vms:SettingsViewModel.GuiSettings}}">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<!-- 时间 -->
|
|
<controls:TextBlock
|
|
Grid.Column="0"
|
|
Margin="0,5,10,5"
|
|
VerticalAlignment="Top"
|
|
Foreground="{DynamicResource TraceLogBrush}"
|
|
Text="{Binding Time}" />
|
|
|
|
<!-- 内容 -->
|
|
<Grid
|
|
Grid.Column="1"
|
|
Margin="0,5"
|
|
HorizontalAlignment="Left"
|
|
ToolTip="{Binding ToolTip}"
|
|
ToolTipService.InitialShowDelay="200">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<controls:TextBlock
|
|
FontWeight="{Binding Weight}"
|
|
ForegroundKey="{Binding Color}"
|
|
Text="{Binding DisplayContent}"
|
|
TextWrapping="Wrap" />
|
|
<controls:TooltipBlock
|
|
Grid.Column="1"
|
|
Margin="10,0,0,0"
|
|
PathDate="{StaticResource LogToolTip}"
|
|
PathStrokeThickness="1.5"
|
|
TextBlockText=""
|
|
Visibility="{c:Binding ShowToolTip}" />
|
|
</Grid>
|
|
</Grid>
|
|
<Border
|
|
MaxWidth="420"
|
|
Margin="0,0,0,2.5"
|
|
Padding="5,0,1,5"
|
|
Background="{DynamicResource MouseOverRegionBrushOpacity10}"
|
|
BorderBrush="{DynamicResource BorderBrush}"
|
|
BorderThickness="1"
|
|
CornerRadius="4"
|
|
Visibility="{c:Binding UseCardLog,
|
|
Source={x:Static ui_vms:SettingsViewModel.GuiSettings}}">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid Width="60">
|
|
<controls:TextBlock
|
|
Grid.Row="0"
|
|
Margin="0,5,0,0"
|
|
HorizontalAlignment="Center"
|
|
Foreground="{DynamicResource TraceLogBrush}"
|
|
Text="{Binding Time}"
|
|
TextWrapping="Wrap" />
|
|
</Grid>
|
|
<Grid
|
|
Grid.Column="1"
|
|
Margin="10,0,0,0"
|
|
HorizontalAlignment="Left"
|
|
ToolTip="{Binding ToolTip}"
|
|
ToolTipService.InitialShowDelay="200">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<controls:TextBlock
|
|
Grid.Column="0"
|
|
Margin="0,5,0,0"
|
|
FontWeight="{Binding Weight}"
|
|
ForegroundKey="{Binding Color}"
|
|
Text="{Binding DisplayContent}"
|
|
TextWrapping="Wrap" />
|
|
<controls:TooltipBlock
|
|
Grid.Column="1"
|
|
Margin="10,0,0,0"
|
|
PathDate="{StaticResource LogToolTip}"
|
|
PathStrokeThickness="1.5"
|
|
TextBlockText=""
|
|
Visibility="{c:Binding ShowToolTip}" />
|
|
</Grid>
|
|
</Grid>
|
|
</Border>
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</ContentControl.ContentTemplate>
|
|
</ContentControl>
|
|
|
|
<!-- Main log scroll area -->
|
|
<hc:ScrollViewer
|
|
Grid.Row="1"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Stretch"
|
|
properties:AutoScroll.AutoScroll="True"
|
|
HorizontalScrollBarVisibility="Disabled"
|
|
IsInertiaEnabled="True"
|
|
PanningMode="Both">
|
|
<Grid>
|
|
<!-- Plain text log style -->
|
|
<ItemsControl
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Stretch"
|
|
d:ItemsSource="{d:SampleData ItemCount=20}"
|
|
d:Visibility="Collapsed"
|
|
ItemsSource="{Binding LogItemViewModels}"
|
|
Visibility="{c:Binding !UseCardLog,
|
|
Source={x:Static ui_vms:SettingsViewModel.GuiSettings}}">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<!-- 时间 -->
|
|
<controls:TextBlock
|
|
Grid.Column="0"
|
|
Margin="0,5,10,5"
|
|
VerticalAlignment="Top"
|
|
Foreground="{DynamicResource TraceLogBrush}"
|
|
Text="{Binding Time}" />
|
|
|
|
<!-- 内容 -->
|
|
<Grid
|
|
Grid.Column="1"
|
|
Margin="0,5"
|
|
HorizontalAlignment="Left"
|
|
ToolTip="{Binding ToolTip}"
|
|
ToolTipService.InitialShowDelay="200">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<controls:TextBlock
|
|
FontWeight="{Binding Weight}"
|
|
ForegroundKey="{Binding Color}"
|
|
Text="{Binding DisplayContent}"
|
|
TextWrapping="Wrap" />
|
|
<controls:TooltipBlock
|
|
Grid.Column="1"
|
|
Margin="10,0,0,0"
|
|
PathDate="{StaticResource LogToolTip}"
|
|
PathStrokeThickness="1.5"
|
|
TextBlockText=""
|
|
Visibility="{c:Binding ShowToolTip}" />
|
|
</Grid>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
|
|
<!-- Card log style -->
|
|
<ItemsControl
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Stretch"
|
|
d:ItemsSource="{d:SampleData ItemCount=20}"
|
|
d:Visibility="Visible"
|
|
ItemsSource="{Binding LogCardViewModels}"
|
|
Visibility="{c:Binding UseCardLog,
|
|
Source={x:Static ui_vms:SettingsViewModel.GuiSettings}}">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<Border
|
|
MaxWidth="420"
|
|
Margin="0,0,0,2.5"
|
|
Padding="5,0,1,5"
|
|
Background="{DynamicResource MouseOverRegionBrushOpacity10}"
|
|
BorderBrush="{DynamicResource BorderBrush}"
|
|
BorderThickness="1"
|
|
CornerRadius="4"
|
|
Visibility="{c:Binding 'Items.Count > 0'}">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid
|
|
Width="60"
|
|
Margin="0,5,0,0"
|
|
VerticalAlignment="Stretch">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<controls:TextBlock
|
|
Grid.Row="0"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Top"
|
|
Foreground="{DynamicResource TraceLogBrush}"
|
|
Text="{Binding StartTime}"
|
|
TextWrapping="Wrap" />
|
|
<Image
|
|
Grid.Row="1"
|
|
Source="{Binding Thumbnail}"
|
|
Stretch="UniformToFill"
|
|
ToolTipService.InitialShowDelay="200"
|
|
Visibility="{c:Binding ShowThumbnail}">
|
|
<Image.ToolTip>
|
|
<ToolTip>
|
|
<Image Source="{Binding Thumbnail}" />
|
|
</ToolTip>
|
|
</Image.ToolTip>
|
|
</Image>
|
|
<TextBlock
|
|
Grid.Row="2"
|
|
HorizontalAlignment="Center"
|
|
Foreground="{DynamicResource TraceLogBrush}"
|
|
Text="{Binding EndTime}"
|
|
TextWrapping="Wrap"
|
|
Visibility="{c:Binding 'StartTime != EndTime or Items.Count > 1'}" />
|
|
</Grid>
|
|
<Grid Grid.Column="1" Margin="10,0,0,0">
|
|
<ItemsControl ItemsSource="{Binding Items}">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<Grid
|
|
Margin="0,5,0,0"
|
|
HorizontalAlignment="Left"
|
|
ToolTip="{Binding ToolTip}"
|
|
ToolTipService.InitialShowDelay="200">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<controls:TextBlock
|
|
FontWeight="{Binding Weight}"
|
|
ForegroundKey="{Binding Color}"
|
|
Text="{Binding DisplayContent}"
|
|
TextWrapping="Wrap" />
|
|
<controls:TooltipBlock
|
|
Grid.Column="1"
|
|
Margin="10,0,0,0"
|
|
PathDate="{StaticResource LogToolTip}"
|
|
PathStrokeThickness="1.5"
|
|
TextBlockText=""
|
|
Visibility="{c:Binding ShowToolTip}" />
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</Grid>
|
|
</Grid>
|
|
</Border>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</Grid>
|
|
</hc:ScrollViewer>
|
|
</Grid>
|
|
|
|
<!-- 覆盖层:悬浮窗按钮,绑定到信息流区域右上角(不占布局) -->
|
|
<Grid
|
|
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}" 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>
|
|
</Grid>
|
|
</Grid>
|
|
</Grid>
|
|
</Grid>
|
|
</UserControl>
|