refactor: 重构任务设置界面布局

This commit is contained in:
枫雨
2023-04-27 00:06:11 +08:00
parent 5836931a58
commit 99fcd546ce
13 changed files with 675 additions and 892 deletions

View File

@@ -16,7 +16,7 @@ using Stylet;
namespace MaaWpfGui.Models
{
/// <summary>
/// The task setting visibility info.
/// The task setting enable info.
/// </summary>
public class TaskSettingVisibilityInfo : PropertyChangedBase
{

View File

@@ -31,6 +31,7 @@ using MaaWpfGui.Constants;
using MaaWpfGui.Extensions;
using MaaWpfGui.Helper;
using MaaWpfGui.Main;
using MaaWpfGui.Models;
using MaaWpfGui.Services.HotKeys;
using MaaWpfGui.Utilities;
using MaaWpfGui.Utilities.ValueType;
@@ -79,6 +80,11 @@ namespace MaaWpfGui.ViewModels.UI
/// </summary>
public static readonly string PallasLangKey = "pallas";
/// <summary>
/// Gets the visibility of task setting views.
/// </summary>
public TaskSettingVisibilityInfo TaskSettingVisibilities { get; } = TaskSettingVisibilityInfo.Current;
/// <summary>
/// Initializes a new instance of the <see cref="SettingsViewModel"/> class.
/// </summary>
@@ -936,6 +942,8 @@ namespace MaaWpfGui.ViewModels.UI
}
}
public TaskQueueViewModel CustomInfrastPlanDataContext { get => Instances.TaskQueueViewModel; }
private string _usesOfDrones = ConfigurationHelper.GetValue(ConfigurationKeys.UsesOfDrones, "Money");
/// <summary>

View File

@@ -60,6 +60,8 @@ namespace MaaWpfGui.ViewModels.UI
/// </summary>
public TaskSettingVisibilityInfo TaskSettingVisibilities { get; } = TaskSettingVisibilityInfo.Current;
public SettingsViewModel TaskSettingDataContext { get => Instances.SettingsViewModel; }
/// <summary>
/// 实时更新任务顺序
/// </summary>

View File

@@ -73,17 +73,20 @@
Content="{Binding Name}"
IsChecked="{Binding IsChecked}"
IsHitTestVisible="{Binding ElementName=TaskList, Path=DataContext.Idle}" />
<RadioButton
Margin="0"
Padding="0"
hc:IconElement.Geometry="{StaticResource ConfigGeometry}"
hc:VisualElement.HighlightForeground="{DynamicResource PrimaryBrush}"
Background="Transparent"
BorderThickness="0"
Foreground="{DynamicResource SecondaryTextBrush}"
GroupName="TaskSetting"
IsChecked="{Binding EnableSetting}"
Style="{DynamicResource RadioGroupItemSingle}" />
<hc:ButtonGroup>
<RadioButton
Margin="0"
Padding="0"
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 EnableSetting}"
Style="{DynamicResource RadioGroupItemSingle}" />
</hc:ButtonGroup>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
@@ -186,8 +189,8 @@
</Grid>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
<RowDefinition Height="4*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<hc:ScrollViewer
Grid.Row="0"
@@ -197,14 +200,34 @@
HorizontalScrollBarVisibility="Auto"
IsInertiaEnabled="True"
VerticalScrollBarVisibility="Auto">
<hc:SimpleStackPanel>
<userControl:ConnectSettingsUserControl IsEnabled="{Binding Idle}" Visibility="{c:Binding TaskSettingVisibilities.WakeUp}" />
<userControl:AutoRecruitSettingsUserControl IsEnabled="{Binding Idle}" Visibility="{c:Binding TaskSettingVisibilities.Recruiting}" />
<userControl:InfrastSettingsUserControl IsEnabled="{Binding Idle}" Visibility="{c:Binding TaskSettingVisibilities.Base}" />
<userControl:MallSettingsUserControl IsEnabled="{Binding Idle}" Visibility="{c:Binding TaskSettingVisibilities.Mall}" />
<hc:SimpleStackPanel Width="220" Margin="0,0,5,0">
<userControl:FightSettingsUserControl Visibility="{c:Binding TaskSettingVisibilities.Combat}" />
<userControl:RoguelikeSettingsUserControl IsEnabled="{Binding Idle}" Visibility="{c:Binding TaskSettingVisibilities.Mission}" />
<userControl:RoguelikeSettingsUserControl IsEnabled="{Binding Idle}" Visibility="{c:Binding TaskSettingVisibilities.AutoRoguelike}" />
<userControl:AutoRecruitSettingsUserControl
DataContext="{Binding TaskSettingDataContext}"
IsEnabled="{Binding Idle}"
Visibility="{c:Binding TaskSettingVisibilities.Recruiting}" />
<userControl:ConnectSettingsOnWakeUpUserControl
DataContext="{Binding TaskSettingDataContext}"
IsEnabled="{Binding Idle}"
Visibility="{c:Binding TaskSettingVisibilities.WakeUp}" />
<userControl:InfrastSettingsUserControl
DataContext="{Binding TaskSettingDataContext}"
IsEnabled="{Binding Idle}"
Visibility="{c:Binding TaskSettingVisibilities.Base}" />
<userControl:MallSettingsUserControl
DataContext="{Binding TaskSettingDataContext}"
IsEnabled="{Binding Idle}"
Visibility="{c:Binding TaskSettingVisibilities.Mall}" />
<!--
userControl:RoguelikeSettingsUserControl
DataContext="{Binding TaskSettingDataContext}"
IsEnabled="{Binding Idle}"
Visibility="{c:Binding TaskSettingVisibilities.Mission}" /
-->
<userControl:RoguelikeSettingsUserControl
DataContext="{Binding TaskSettingDataContext}"
IsEnabled="{Binding Idle}"
Visibility="{c:Binding TaskSettingVisibilities.AutoRoguelike}" />
</hc:SimpleStackPanel>
</hc:ScrollViewer>
<hc:ScrollViewer

View File

@@ -5,6 +5,7 @@
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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:s="https://github.com/canton7/Stylet"
xmlns:styles="clr-namespace:MaaWpfGui.Styles"
@@ -12,92 +13,51 @@
xmlns:viewModels="clr-namespace:MaaWpfGui.ViewModels"
xmlns:vm="clr-namespace:MaaWpfGui"
d:DataContext="{d:DesignInstance {x:Type ui:SettingsViewModel}}"
d:DesignWidth="400"
d:DesignWidth="220"
mc:Ignorable="d">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Center">
<StackPanel
Grid.Row="0"
Margin="0,10,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Top">
<CheckBox
Margin="10"
HorizontalAlignment="Left"
Content="{DynamicResource AutoRefresh}"
IsChecked="{Binding RefreshLevel3}" />
<CheckBox
Margin="10"
HorizontalAlignment="Left"
Content="{DynamicResource AutoUseExpedited}"
IsChecked="{Binding UseExpedited}"
ToolTip="{DynamicResource CheckBoxesNotSaved}" />
<CheckBox
MaxWidth="170"
Margin="10"
HorizontalAlignment="Left"
IsChecked="{Binding IsLevel3UseShortTime}"
ToolTip="{DynamicResource Level3UseShortTimeTip}">
<controls:TextBlock Text="{DynamicResource Level3UseShortTime}" TextWrapping="Wrap" />
</CheckBox>
</StackPanel>
<StackPanel
Margin="0,130,0,10"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<controls:TextBlock
Width="90"
Margin="5"
VerticalAlignment="Center"
Block.TextAlignment="Center"
Text="{DynamicResource RecruitMaxTimes}"
TextWrapping="Wrap" />
<TextBox
Width="50"
Margin="5"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding RecruitMaxTimes}" />
</StackPanel>
</Grid>
<StackPanel
Grid.Column="1"
Height="125"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<CheckBox
Margin="5"
Content="{DynamicResource ManuallySelectLevel1}"
IsChecked="{Binding NotChooseLevel1}"
ToolTip="{DynamicResource Level1Tip}" />
<CheckBox
Margin="5"
Content="{DynamicResource AutoSelectLevel3}"
IsChecked="{Binding ChooseLevel3}" />
<CheckBox
Margin="5"
Content="{DynamicResource AutoSelectLevel4}"
IsChecked="{Binding ChooseLevel4}" />
<CheckBox
Margin="5"
Content="{DynamicResource AutoSelectLevel5}"
IsChecked="{Binding ChooseLevel5}" />
<CheckBox
Margin="5"
Content="{DynamicResource AutoSelectLevel6}"
IsChecked="False"
IsEnabled="False" />
</StackPanel>
</Grid>
<StackPanel>
<CheckBox
Margin="0,10"
Content="{DynamicResource AutoRefresh}"
IsChecked="{Binding RefreshLevel3}" />
<CheckBox
Margin="0,10"
Content="{DynamicResource AutoUseExpedited}"
IsChecked="{Binding UseExpedited}"
ToolTip="{DynamicResource CheckBoxesNotSaved}" />
<CheckBox
Margin="0,10"
HorizontalAlignment="Left"
IsChecked="{Binding IsLevel3UseShortTime}"
ToolTip="{DynamicResource Level3UseShortTimeTip}">
<controls:TextBlock Text="{DynamicResource Level3UseShortTime}" TextWrapping="Wrap" />
</CheckBox>
<hc:NumericUpDown
Margin="0,10"
hc:InfoElement.Title="{DynamicResource RecruitMaxTimes}"
Style="{StaticResource NumericUpDownExtend}"
Value="{Binding RecruitMaxTimes}" />
<CheckBox
Margin="0,10"
Content="{DynamicResource ManuallySelectLevel1}"
IsChecked="{Binding NotChooseLevel1}"
ToolTip="{DynamicResource Level1Tip}" />
<CheckBox
Margin="0,10"
Content="{DynamicResource AutoSelectLevel3}"
IsChecked="{Binding ChooseLevel3}" />
<CheckBox
Margin="0,10"
Content="{DynamicResource AutoSelectLevel4}"
IsChecked="{Binding ChooseLevel4}" />
<CheckBox
Margin="0,10"
Content="{DynamicResource AutoSelectLevel5}"
IsChecked="{Binding ChooseLevel5}" />
<CheckBox
Margin="0,10"
Content="{DynamicResource AutoSelectLevel6}"
IsChecked="False"
IsEnabled="False" />
</StackPanel>
</UserControl>

View File

@@ -0,0 +1,81 @@
<UserControl
x:Class="MaaWpfGui.Views.UserControl.ConnectSettingsOnWakeUpUserControl"
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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:s="https://github.com/canton7/Stylet"
xmlns:styles="clr-namespace:MaaWpfGui.Styles"
xmlns:ui="clr-namespace:MaaWpfGui.ViewModels.UI"
xmlns:viewModels="clr-namespace:MaaWpfGui.ViewModels"
xmlns:vm="clr-namespace:MaaWpfGui"
d:DataContext="{d:DesignInstance {x:Type ui:SettingsViewModel}}"
d:DesignWidth="220"
mc:Ignorable="d">
<StackPanel>
<CheckBox
Margin="0,10"
Content="{DynamicResource AutoDetectConnection}"
IsChecked="{Binding AutoDetectConnection}"
ToolTip="{DynamicResource AutoDetectConnectionTip}" />
<CheckBox
Margin="0,10"
Content="{DynamicResource AlwaysAutoDetectConnection}"
IsChecked="{Binding AlwaysAutoDetectConnection}"
Visibility="{c:Binding AutoDetectConnection}" />
<ComboBox
Margin="0,10"
hc:InfoElement.Title="{DynamicResource ConnectionAddress}"
IsEditable="True"
IsEnabled="{c:Binding !AutoDetectConnection}"
ItemsSource="{Binding ConnectAddressHistory}"
Style="{StaticResource ComboBoxExtend}"
Text="{Binding ConnectAddress, UpdateSourceTrigger=LostFocus}"
ToolTip="{DynamicResource ConnectionAddressTip}">
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid Width="{c:Binding ActualWidth - 20, RelativeSource={RelativeSource AncestorType=ComboBox}}">
<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 RemoveAddress_Click}"
CommandParameter="{Binding}"
Content="×"
FontWeight="Bold" />
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<ComboBox
Margin="0,10"
hc:InfoElement.Title="{DynamicResource ConnectionPreset}"
DisplayMemberPath="Display"
IsEnabled="{c:Binding !AutoDetectConnection}"
ItemsSource="{Binding ConnectConfigList}"
SelectedValue="{Binding ConnectConfig}"
SelectedValuePath="Value"
Style="{StaticResource ComboBoxExtend}" />
<ComboBox
Margin="0,10"
hc:InfoElement.Title="{DynamicResource TouchMode}"
DisplayMemberPath="Display"
IsHitTestVisible="{Binding Idle}"
ItemsSource="{Binding TouchModeList}"
SelectedValue="{Binding TouchMode}"
SelectedValuePath="Value"
Style="{StaticResource ComboBoxExtend}" />
</StackPanel>
</UserControl>

View File

@@ -1,4 +1,4 @@
// <copyright file="OtherCombatSettingsUserControl.xaml.cs" company="MaaAssistantArknights">
// <copyright file="ConnectSettingsOnWakeUpUserControl.xaml.cs" company="MaaAssistantArknights">
// MaaWpfGui - A part of the MaaCoreArknights project
// Copyright (C) 2021 MistEO and Contributors
//
@@ -14,14 +14,14 @@
namespace MaaWpfGui.Views.UserControl
{
/// <summary>
/// OtherCombatSettingsUserControl.xaml 的交互逻辑
/// ConnectSettingsOnWakeUpUserControl.xaml 的交互逻辑
/// </summary>
public partial class OtherCombatSettingsUserControl : System.Windows.Controls.UserControl
public partial class ConnectSettingsOnWakeUpUserControl : System.Windows.Controls.UserControl
{
/// <summary>
/// Initializes a new instance of the <see cref="OtherCombatSettingsUserControl"/> class.
/// Initializes a new instance of the <see cref="ConnectSettingsOnWakeUpUserControl"/> class.
/// </summary>
public OtherCombatSettingsUserControl()
public ConnectSettingsOnWakeUpUserControl()
{
InitializeComponent();
}

View File

@@ -14,281 +14,289 @@
xmlns:viewModels="clr-namespace:MaaWpfGui.ViewModels"
xmlns:vm="clr-namespace:MaaWpfGui"
d:DataContext="{d:DesignInstance {x:Type ui:TaskQueueViewModel}}"
d:DesignWidth="250"
d:DesignWidth="220"
mc:Ignorable="d">
<Grid Width="220" Margin="0,0,5,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="100" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<StackPanel Orientation="Vertical">
<CheckBox
Height="30"
Margin="10,6"
VerticalContentAlignment="Center"
Content="{DynamicResource UseSanityPotion}"
IsChecked="{Binding UseMedicine}" />
<CheckBox
Height="30"
Margin="10,6"
VerticalContentAlignment="Center"
Content="{DynamicResource UseOriginitePrime}"
IsChecked="{Binding UseStone}"
ToolTip="{DynamicResource CheckBoxesNotSaved}" />
<CheckBox
Height="30"
Margin="10,6"
VerticalContentAlignment="Center"
Content="{DynamicResource PerformBattles}"
IsChecked="{Binding HasTimesLimited}"
ToolTip="{DynamicResource CheckBoxesNotSaved}" />
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Vertical">
<TextBox
Width="60"
Height="30"
Margin="0,6"
HorizontalAlignment="Left"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
InputMethod.IsInputMethodEnabled="False"
LostFocus="FightSettingsTextBoxLostFocus"
PreviewTextInput="TextBox_RestrictInputInt"
Text="{Binding MedicineNumber, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Width="60"
Height="30"
Margin="0,6"
HorizontalAlignment="Left"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
InputMethod.IsInputMethodEnabled="False"
LostFocus="FightSettingsTextBoxLostFocus"
PreviewTextInput="TextBox_RestrictInputInt"
Text="{Binding StoneNumber, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Width="60"
Height="30"
Margin="0,6"
HorizontalAlignment="Left"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
InputMethod.IsInputMethodEnabled="False"
LostFocus="FightSettingsTextBoxLostFocus"
PreviewTextInput="TextBox_RestrictInputInt"
Text="{Binding MaxTimes, UpdateSourceTrigger=PropertyChanged}" />
</StackPanel>
</Grid>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="100" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<StackPanel Orientation="Vertical">
<CheckBox
Height="30"
Margin="10,6"
VerticalContentAlignment="Center"
Content="{DynamicResource AssignedMaterial}"
IsChecked="{Binding IsSpecifiedDrops}"
ToolTip="{DynamicResource NoAutoNavigation}" />
<Grid Height="42" Visibility="{c:Binding IsSpecifiedDrops}">
<controls:TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{DynamicResource Quantity}"
TextAlignment="Center" />
</Grid>
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Vertical">
<ComboBox
Height="30"
Margin="0,6"
VerticalContentAlignment="Center"
DisplayMemberPath="Display"
DropDownClosed="{s:Action DropsListDropDownClosed}"
IsEditable="True"
IsTextSearchEnabled="False"
ItemsSource="{Binding DropsList}"
Loaded="{s:Action DropsList_Loaded}"
SelectedValue="{Binding DropsItemId}"
SelectedValuePath="Value"
Text="{Binding DropsItemName}" />
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="90" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<StackPanel Orientation="Vertical">
<CheckBox
Height="30"
Margin="6"
VerticalContentAlignment="Center"
Content="{DynamicResource UseSanityPotion}"
IsChecked="{Binding UseMedicine}" />
<CheckBox
Height="30"
Margin="6"
VerticalContentAlignment="Center"
Content="{DynamicResource UseOriginitePrime}"
IsChecked="{Binding UseStone}"
ToolTip="{DynamicResource CheckBoxesNotSaved}" />
<CheckBox
Height="30"
Margin="6"
VerticalContentAlignment="Center"
Content="{DynamicResource PerformBattles}"
IsChecked="{Binding HasTimesLimited}"
ToolTip="{DynamicResource CheckBoxesNotSaved}" />
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Vertical">
<hc:NumericUpDown
Width="70"
Height="30"
Margin="6"
HorizontalAlignment="Left"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Maximum="9999"
Minimum="0"
Value="{Binding MedicineNumber, UpdateSourceTrigger=PropertyChanged}" />
<hc:NumericUpDown
Width="70"
Height="30"
Margin="6"
HorizontalAlignment="Left"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Maximum="9999"
Minimum="0"
Value="{Binding StoneNumber, UpdateSourceTrigger=PropertyChanged}" />
<hc:NumericUpDown
Width="70"
Height="30"
Margin="6"
HorizontalAlignment="Left"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Maximum="9999"
Minimum="0"
Value="{Binding MaxTimes, UpdateSourceTrigger=PropertyChanged}" />
</StackPanel>
</Grid>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="90" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<StackPanel Orientation="Vertical">
<CheckBox
Height="30"
Margin="6"
VerticalContentAlignment="Center"
Content="{DynamicResource AssignedMaterial}"
IsChecked="{Binding IsSpecifiedDrops}"
ToolTip="{DynamicResource NoAutoNavigation}" />
<Grid Height="42" Visibility="{c:Binding IsSpecifiedDrops}">
<controls:TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{DynamicResource Quantity}"
TextAlignment="Center" />
</Grid>
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Vertical">
<ComboBox
Height="30"
Margin="6"
VerticalContentAlignment="Center"
DisplayMemberPath="Display"
DropDownClosed="{s:Action DropsListDropDownClosed}"
IsEditable="True"
IsTextSearchEnabled="False"
ItemsSource="{Binding DropsList}"
Loaded="{s:Action DropsList_Loaded}"
SelectedValue="{Binding DropsItemId}"
SelectedValuePath="Value"
Text="{Binding DropsItemName}" />
<TextBox
Width="60"
Height="30"
Margin="0,6"
HorizontalAlignment="Left"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
InputMethod.IsInputMethodEnabled="False"
LostFocus="FightSettingsTextBoxLostFocus"
PreviewTextInput="TextBox_RestrictInputInt"
Text="{Binding DropsQuantity, UpdateSourceTrigger=PropertyChanged}"
Visibility="{c:Binding IsSpecifiedDrops}" />
</StackPanel>
<hc:NumericUpDown
Width="60"
Height="30"
Margin="6"
HorizontalAlignment="Left"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Visibility="{c:Binding IsSpecifiedDrops}"
Value="{Binding DropsQuantity, UpdateSourceTrigger=PropertyChanged}" />
</StackPanel>
</Grid>
<Grid Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="90" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<StackPanel Grid.Row="2" Orientation="Vertical">
<Grid Height="42">
<controls:TextBlock
Margin="6"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{DynamicResource StageSelect}"
TextAlignment="Center"
TextWrapping="Wrap" />
</Grid>
<Grid Height="42" Visibility="{c:Binding UseAlternateStage}">
<controls:TextBlock
Margin="6"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{DynamicResource StageSelect2}"
TextAlignment="Center"
TextWrapping="Wrap" />
</Grid>
<Grid Height="42" Visibility="{c:Binding UseAlternateStage}">
<!-- a placeholder -->
<controls:TextBlock
Margin="6"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text=""
TextAlignment="Center"
TextWrapping="Wrap" />
</Grid>
<Grid Height="42" Visibility="{c:Binding UseRemainingSanityStage}">
<controls:TextBlock
Margin="6"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{DynamicResource RemainingSanityStage}"
TextAlignment="Center"
TextWrapping="Wrap" />
</Grid>
</StackPanel>
<StackPanel
Grid.Row="2"
Grid.Column="1"
Orientation="Vertical">
<ComboBox
Height="30"
Margin="6"
VerticalContentAlignment="Center"
DisplayMemberPath="Display"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
ItemsSource="{Binding StageList}"
SelectedValue="{Binding Stage1}"
SelectedValuePath="Value"
Visibility="{c:Binding !CustomStageCode}" />
<ComboBox
Height="30"
Margin="6"
VerticalContentAlignment="Center"
DisplayMemberPath="Display"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
ItemsSource="{Binding StageList}"
SelectedValue="{Binding Stage2}"
SelectedValuePath="Value"
Visibility="{c:Binding !CustomStageCode and UseAlternateStage}" />
<ComboBox
Height="30"
Margin="6"
VerticalContentAlignment="Center"
DisplayMemberPath="Display"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
ItemsSource="{Binding StageList}"
SelectedValue="{Binding Stage3}"
SelectedValuePath="Value"
Visibility="{c:Binding !CustomStageCode and UseAlternateStage}" />
<ComboBox
Height="30"
Margin="6"
VerticalContentAlignment="Center"
DisplayMemberPath="Display"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
ItemsSource="{Binding RemainingSanityStageList}"
SelectedValue="{Binding RemainingSanityStage}"
SelectedValuePath="Value"
ToolTip="{DynamicResource UseRemainingSanityStageTip}"
Visibility="{c:Binding !CustomStageCode and UseRemainingSanityStage}" />
<TextBox
Height="30"
Margin="6"
VerticalContentAlignment="Center"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
Text="{Binding Stage1, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{DynamicResource CustomStageCodeTip}"
Visibility="{c:Binding CustomStageCode}" />
<TextBox
Height="30"
Margin="6"
VerticalContentAlignment="Center"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
Text="{Binding Stage2, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{DynamicResource CustomStageCodeTip}"
Visibility="{c:Binding CustomStageCode and UseAlternateStage}" />
<TextBox
Height="30"
Margin="6"
VerticalContentAlignment="Center"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
Text="{Binding Stage3, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{DynamicResource CustomStageCodeTip}"
Visibility="{c:Binding CustomStageCode and UseAlternateStage}" />
<TextBox
Height="30"
Margin="6"
VerticalContentAlignment="Center"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
Text="{Binding RemainingSanityStage, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{DynamicResource UseRemainingSanityStageTip}"
Visibility="{c:Binding CustomStageCode and UseRemainingSanityStage}" />
</StackPanel>
</Grid>
</Grid>
<Grid Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="100" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<StackPanel Grid.Row="2" Orientation="Vertical">
<Grid Height="42">
<controls:TextBlock
Margin="10,6"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{DynamicResource StageSelect}"
TextAlignment="Center"
TextWrapping="Wrap" />
</Grid>
<Grid Height="42" Visibility="{c:Binding UseAlternateStage}">
<controls:TextBlock
Margin="10,6"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{DynamicResource StageSelect2}"
TextAlignment="Center"
TextWrapping="Wrap" />
</Grid>
<Grid Height="42" Visibility="{c:Binding UseAlternateStage}">
<!-- a placeholder -->
<controls:TextBlock
Margin="10,6"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text=""
TextAlignment="Center"
TextWrapping="Wrap" />
</Grid>
<Grid Height="42" Visibility="{c:Binding UseRemainingSanityStage}">
<controls:TextBlock
Margin="10,6"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{DynamicResource RemainingSanityStage}"
TextAlignment="Center"
TextWrapping="Wrap" />
</Grid>
</StackPanel>
<StackPanel
Grid.Row="2"
Grid.Column="1"
Orientation="Vertical">
<ComboBox
Height="30"
Margin="0,6"
VerticalContentAlignment="Center"
DisplayMemberPath="Display"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
ItemsSource="{Binding StageList}"
SelectedValue="{Binding Stage1}"
SelectedValuePath="Value"
Visibility="{c:Binding !CustomStageCode}" />
<ComboBox
Height="30"
Margin="0,6"
VerticalContentAlignment="Center"
DisplayMemberPath="Display"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
ItemsSource="{Binding StageList}"
SelectedValue="{Binding Stage2}"
SelectedValuePath="Value"
Visibility="{c:Binding !CustomStageCode and UseAlternateStage}" />
<ComboBox
Height="30"
Margin="0,6"
VerticalContentAlignment="Center"
DisplayMemberPath="Display"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
ItemsSource="{Binding StageList}"
SelectedValue="{Binding Stage3}"
SelectedValuePath="Value"
Visibility="{c:Binding !CustomStageCode and UseAlternateStage}" />
<ComboBox
Height="30"
Margin="0,6"
VerticalContentAlignment="Center"
DisplayMemberPath="Display"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
ItemsSource="{Binding RemainingSanityStageList}"
SelectedValue="{Binding RemainingSanityStage}"
SelectedValuePath="Value"
ToolTip="{DynamicResource UseRemainingSanityStageTip}"
Visibility="{c:Binding !CustomStageCode and UseRemainingSanityStage}" />
<TextBox
Height="30"
Margin="0,6"
VerticalContentAlignment="Center"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
Text="{Binding Stage1, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{DynamicResource CustomStageCodeTip}"
Visibility="{c:Binding CustomStageCode}" />
<TextBox
Height="30"
Margin="0,6"
VerticalContentAlignment="Center"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
Text="{Binding Stage2, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{DynamicResource CustomStageCodeTip}"
Visibility="{c:Binding CustomStageCode and UseAlternateStage}" />
<TextBox
Height="30"
Margin="0,6"
VerticalContentAlignment="Center"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
Text="{Binding Stage3, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{DynamicResource CustomStageCodeTip}"
Visibility="{c:Binding CustomStageCode and UseAlternateStage}" />
<TextBox
Height="30"
Margin="0,6"
VerticalContentAlignment="Center"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
Text="{Binding RemainingSanityStage, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{DynamicResource UseRemainingSanityStageTip}"
Visibility="{c:Binding CustomStageCode and UseRemainingSanityStage}" />
</StackPanel>
</Grid>
<Grid Grid.Row="3" Visibility="{c:Binding CustomInfrastEnabled}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="100" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<StackPanel Grid.Row="2" Orientation="Vertical">
<Grid Height="42">
<controls:TextBlock
Margin="10,6"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{DynamicResource CustomInfrastPlan}"
TextAlignment="Center"
TextWrapping="Wrap" />
</Grid>
</StackPanel>
<StackPanel
Grid.Row="2"
Grid.Column="1"
Orientation="Vertical">
<ComboBox
Height="30"
Margin="0,6"
VerticalContentAlignment="Center"
DisplayMemberPath="Display"
IsHitTestVisible="{c:Binding !InfrastTaskRunning}"
ItemsSource="{Binding CustomInfrastPlanList}"
SelectedValue="{Binding CustomInfrastPlanIndex}"
SelectedValuePath="Value" />
</StackPanel>
</Grid>
</Grid>
<StackPanel DataContext="{Binding TaskSettingDataContext}" IsEnabled="{Binding Idle}">
<CheckBox
Margin="6,10"
HorizontalAlignment="Left"
Content="{DynamicResource DrGrandet}"
IsChecked="{Binding IsDrGrandet}"
ToolTip="{DynamicResource DrGrandetTip}" />
<CheckBox
Margin="6,10"
HorizontalAlignment="Left"
Content="{DynamicResource CustomStageCode}"
IsChecked="{Binding CustomStageCode}"
ToolTip="{DynamicResource CustomStageCodeTip}" />
<CheckBox
Margin="6,10"
HorizontalAlignment="Left"
Content="{DynamicResource UseAlternateStage}"
IsChecked="{Binding UseAlternateStage}" />
<CheckBox
Margin="6,10"
HorizontalAlignment="Left"
Content="{DynamicResource UseRemainingSanityStage}"
IsChecked="{Binding UseRemainingSanityStage}"
ToolTip="{DynamicResource UseRemainingSanityStageTip}" />
<CheckBox
Margin="6,10"
HorizontalAlignment="Left"
Content="{DynamicResource UseExpiringMedicine}"
IsChecked="{Binding UseExpiringMedicine}" />
<CheckBox
Margin="6,10"
HorizontalAlignment="Left"
Content="{DynamicResource HideUnavailableStage}"
IsChecked="{Binding HideUnavailableStage}"
IsEnabled="{c:Binding !CustomStageCode}" />
<TextBox
Margin="6,10"
HorizontalAlignment="Left"
hc:InfoElement.Title="{DynamicResource PenguinID}"
InputMethod.IsInputMethodEnabled="False"
Style="{StaticResource TextBoxExtend}"
Text="{Binding PenguinId}" />
</StackPanel>
</StackPanel>
</UserControl>

View File

@@ -30,21 +30,5 @@ namespace MaaWpfGui.Views.UserControl
{
InitializeComponent();
}
// 限制输入为整数
private void TextBox_RestrictInputInt(object sender, TextCompositionEventArgs e)
{
Regex regex = new Regex("[^0-9]+");
e.Handled = regex.IsMatch(e.Text);
}
private void FightSettingsTextBoxLostFocus(object sender, RoutedEventArgs e)
{
TextBox textBox = sender as TextBox;
if (string.IsNullOrEmpty(textBox.Text))
{
textBox.Text = "0";
}
}
}
}

View File

@@ -7,6 +7,7 @@
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"
@@ -16,22 +17,32 @@
xmlns:viewModels="clr-namespace:MaaWpfGui.ViewModels"
xmlns:vm="clr-namespace:MaaWpfGui"
d:DataContext="{d:DesignInstance {x:Type ui:SettingsViewModel}}"
d:DesignWidth="550"
d:DesignWidth="220"
mc:Ignorable="d">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<StackPanel>
<StackPanel>
<ComboBox
Margin="0,10"
hc:InfoElement.Title="{DynamicResource DroneUsage}"
DisplayMemberPath="Display"
ItemsSource="{Binding UsesOfDronesList}"
SelectedValue="{Binding UsesOfDrones}"
SelectedValuePath="Value"
Style="{StaticResource ComboBoxExtend}" />
<ComboBox
Margin="0,10"
VerticalContentAlignment="Center"
hc:InfoElement.Title="{DynamicResource CustomInfrastPlan}"
DataContext="{Binding CustomInfrastPlanDataContext}"
DisplayMemberPath="Display"
IsHitTestVisible="{c:Binding !InfrastTaskRunning}"
ItemsSource="{Binding CustomInfrastPlanList}"
SelectedValue="{Binding CustomInfrastPlanIndex}"
SelectedValuePath="Value"
Style="{StaticResource ComboBoxExtend}"
Visibility="{c:Binding CustomInfrastEnabled}" />
<ListBox
Grid.Column="0"
Width="200"
Margin="10"
Margin="0,10"
dd:DragDrop.IsDragSource="True"
dd:DragDrop.IsDropTarget="True"
ItemsSource="{Binding Path=InfrastItemViewModels}"
@@ -47,127 +58,38 @@
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Grid Grid.Column="1" Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel
Grid.Row="0"
</StackPanel>
<StackPanel>
<StackPanel Margin="0,10">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Vertical">
<controls:TextBlock
Margin="0,5"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{DynamicResource DroneUsage}" />
<ComboBox
Width="150"
Margin="0,5"
DisplayMemberPath="Display"
ItemsSource="{Binding UsesOfDronesList}"
SelectedValue="{Binding UsesOfDrones}"
SelectedValuePath="Value" />
</StackPanel>
<StackPanel
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Vertical">
<controls:TextBlock
Margin="0,5"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{Binding DormThresholdLabel}"
ToolTip="{DynamicResource InfrastThresholdTip}" />
<Slider
Width="200"
Margin="0,5"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Maximum="100"
Minimum="0"
ToolTip="{DynamicResource InfrastThresholdTip}"
Value="{Binding DormThreshold}" />
</StackPanel>
<StackPanel
Grid.Row="2"
Grid.RowSpan="2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Vertical">
<CheckBox
Margin="5"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{DynamicResource DormTrustEnabled}"
IsChecked="{Binding DormTrustEnabled}" />
<CheckBox
Margin="5"
HorizontalAlignment="Left"
VerticalAlignment="Center"
IsChecked="{Binding DormFilterNotStationedEnabled}">
<controls:TextBlock
MaxWidth="180"
Text="{DynamicResource DormFilterNotStationedEnabled}"
TextWrapping="Wrap" />
</CheckBox>
<CheckBox
Margin="5"
HorizontalAlignment="Left"
VerticalAlignment="Center"
IsChecked="{Binding OriginiumShardAutoReplenishment}">
<controls:TextBlock
MaxWidth="180"
Text="{DynamicResource OriginiumShardAutoReplenishment}"
TextWrapping="Wrap" />
</CheckBox>
</StackPanel>
</Grid>
</Grid>
<StackPanel
Grid.Row="1"
Margin="10"
HorizontalAlignment="Center">
<CheckBox
Margin="10"
HorizontalAlignment="Center"
VerticalAlignment="Center"
IsChecked="{Binding CustomInfrastEnabled}">
<controls:TextBlock
MaxWidth="180"
Text="{DynamicResource CustomInfrastEnabled}"
Block.TextAlignment="Center"
Foreground="{DynamicResource PrimaryTextBrush}"
Text="{Binding DormThresholdLabel}"
TextWrapping="Wrap" />
<Slider
Margin="0,10,0,0"
Maximum="100"
Minimum="0"
ToolTip="{DynamicResource InfrastThresholdTip}"
Value="{Binding DormThreshold}" />
</StackPanel>
<CheckBox
Margin="0,10"
Content="{DynamicResource DormTrustEnabled}"
IsChecked="{Binding DormTrustEnabled}" />
<CheckBox Margin="0,10" IsChecked="{Binding DormFilterNotStationedEnabled}">
<controls:TextBlock Text="{DynamicResource DormFilterNotStationedEnabled}" TextWrapping="Wrap" />
</CheckBox>
<Grid Visibility="{c:Binding CustomInfrastEnabled}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<CheckBox Margin="0,10" IsChecked="{Binding OriginiumShardAutoReplenishment}">
<controls:TextBlock Text="{DynamicResource OriginiumShardAutoReplenishment}" TextWrapping="Wrap" />
</CheckBox>
<CheckBox Margin="0,10" IsChecked="{Binding CustomInfrastEnabled}">
<controls:TextBlock Text="{DynamicResource CustomInfrastEnabled}" TextWrapping="Wrap" />
</CheckBox>
<StackPanel Visibility="{c:Binding CustomInfrastEnabled}">
<controls:TextBlock
Grid.Row="0"
Grid.Column="0"
HorizontalAlignment="Center"
Text="{DynamicResource DefaultInfrast}" />
<ComboBox
Grid.Row="1"
Grid.Column="0"
Width="115"
Height="30"
ItemsSource="{Binding DefaultInfrastList}"
SelectedValue="{Binding DefaultInfrast}"
SelectedValuePath="Value" />
<controls:TextBlock
Grid.Row="0"
Grid.Column="1"
Margin="5"
Margin="0,5"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Hyperlink
@@ -177,22 +99,27 @@
<TextBlock Text="{DynamicResource CustomInfrastGenerator}" />
</Hyperlink>
</controls:TextBlock>
<StackPanel Orientation="Horizontal">
<ComboBox
Width="150"
Margin="0,10"
hc:InfoElement.Title="{DynamicResource DefaultInfrast}"
ItemsSource="{Binding DefaultInfrastList}"
SelectedValue="{Binding DefaultInfrast}"
SelectedValuePath="Value"
Style="{StaticResource ComboBoxExtend}" />
<Button
Width="60"
Margin="10"
VerticalAlignment="Bottom"
Command="{s:Action SelectCustomInfrastFile}"
Content="{DynamicResource Select}" />
</StackPanel>
<TextBox
Grid.Row="1"
Grid.Column="1"
Width="250"
Height="30"
Margin="10"
Margin="0,10"
IsReadOnly="{Binding IsCustomInfrastFileReadOnly}"
Text="{Binding CustomInfrastFile}" />
<Button
Grid.Row="1"
Grid.Column="2"
Width="60"
Height="30"
Command="{s:Action SelectCustomInfrastFile}"
Content="{DynamicResource Select}" />
</Grid>
</StackPanel>
</StackPanel>
</Grid>
</StackPanel>
</UserControl>

View File

@@ -5,6 +5,7 @@
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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:s="https://github.com/canton7/Stylet"
xmlns:styles="clr-namespace:MaaWpfGui.Styles"
@@ -12,76 +13,42 @@
xmlns:viewModels="clr-namespace:MaaWpfGui.ViewModels"
xmlns:vm="clr-namespace:MaaWpfGui"
d:DataContext="{d:DesignInstance {x:Type ui:SettingsViewModel}}"
d:DesignWidth="550"
d:DesignWidth="220"
mc:Ignorable="d">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<WrapPanel
Grid.Row="0"
MaxWidth="400"
HorizontalAlignment="Center"
Orientation="Horizontal">
<CheckBox
Margin="10"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Block.TextAlignment="Center"
Content="{DynamicResource SocialPtShop}"
IsChecked="{Binding CreditShopping}" />
<CheckBox
Margin="10"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Block.TextAlignment="Center"
Content="{DynamicResource ForceShoppingIfCreditFull}"
IsChecked="{Binding CreditForceShoppingIfCreditFull}" />
<CheckBox
Margin="10"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Block.TextAlignment="Center"
Content="{DynamicResource CreditFight}"
IsChecked="{Binding CreditFightTaskEnabledDisplay}"
ToolTip="{DynamicResource CreditFightTip}" />
</WrapPanel>
<StackPanel
Grid.Row="1"
HorizontalAlignment="Center"
Orientation="Vertical">
<StackPanel
HorizontalAlignment="Right"
VerticalAlignment="Top"
IsEnabled="{Binding CreditShopping}"
Orientation="Horizontal">
<controls:TextBlock
Margin="10"
Block.TextAlignment="Center"
Text="{DynamicResource Blacklist}" />
<TextBox
Width="250"
Height="30"
Margin="10"
Text="{Binding CreditBlackList}" />
</StackPanel>
<StackPanel
HorizontalAlignment="Right"
VerticalAlignment="Top"
IsEnabled="{Binding CreditShopping}"
Orientation="Horizontal">
<controls:TextBlock
Margin="10"
Block.TextAlignment="Center"
Text="{DynamicResource HighPriority}" />
<TextBox
Width="250"
Height="30"
Margin="10"
Text="{Binding CreditFirstList}"
ToolTip="{DynamicResource Drink}" />
</StackPanel>
</StackPanel>
</Grid>
<StackPanel>
<CheckBox
Margin="0,10"
Block.TextAlignment="Left"
Content="{DynamicResource SocialPtShop}"
IsChecked="{Binding CreditShopping}" />
<CheckBox Margin="0,10" IsChecked="{Binding CreditForceShoppingIfCreditFull}">
<TextBlock
Block.TextAlignment="Left"
Text="{DynamicResource ForceShoppingIfCreditFull}"
TextWrapping="Wrap" />
</CheckBox>
<CheckBox
Margin="0,10"
Block.TextAlignment="Left"
IsChecked="{Binding CreditFightTaskEnabledDisplay}"
ToolTip="{DynamicResource CreditFightTip}">
<TextBlock
Block.TextAlignment="Left"
Text="{DynamicResource CreditFight}"
TextWrapping="Wrap" />
</CheckBox>
<TextBox
Margin="0,10"
hc:InfoElement.Title="{DynamicResource Blacklist}"
IsEnabled="{Binding CreditShopping}"
Style="{StaticResource TextBoxExtend}"
Text="{Binding CreditBlackList}" />
<TextBox
Margin="0,10"
hc:InfoElement.Title="{DynamicResource HighPriority}"
IsEnabled="{Binding CreditShopping}"
Style="{StaticResource TextBoxExtend}"
Text="{Binding CreditFirstList}"
ToolTip="{DynamicResource Drink}" />
</StackPanel>
</UserControl>

View File

@@ -1,89 +0,0 @@
<UserControl
x:Class="MaaWpfGui.Views.UserControl.OtherCombatSettingsUserControl"
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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:s="https://github.com/canton7/Stylet"
xmlns:styles="clr-namespace:MaaWpfGui.Styles"
xmlns:ui="clr-namespace:MaaWpfGui.ViewModels.UI"
xmlns:viewModels="clr-namespace:MaaWpfGui.ViewModels"
xmlns:vm="clr-namespace:MaaWpfGui"
d:DataContext="{d:DesignInstance {x:Type ui:SettingsViewModel}}"
d:DesignWidth="550"
mc:Ignorable="d">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Horizontal">
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Vertical">
<CheckBox
Margin="10"
HorizontalAlignment="Left"
Content="{DynamicResource DrGrandet}"
IsChecked="{Binding IsDrGrandet}"
ToolTip="{DynamicResource DrGrandetTip}" />
<CheckBox
Margin="10"
HorizontalAlignment="Left"
Content="{DynamicResource CustomStageCode}"
IsChecked="{Binding CustomStageCode}"
ToolTip="{DynamicResource CustomStageCodeTip}" />
<CheckBox
Margin="10"
HorizontalAlignment="Left"
Content="{DynamicResource UseAlternateStage}"
IsChecked="{Binding UseAlternateStage}" />
</StackPanel>
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Vertical">
<CheckBox
Margin="10"
HorizontalAlignment="Left"
Content="{DynamicResource UseRemainingSanityStage}"
IsChecked="{Binding UseRemainingSanityStage}"
ToolTip="{DynamicResource UseRemainingSanityStageTip}" />
<CheckBox
Margin="10"
HorizontalAlignment="Left"
Content="{DynamicResource UseExpiringMedicine}"
IsChecked="{Binding UseExpiringMedicine}" />
<CheckBox
Margin="10"
HorizontalAlignment="Left"
Content="{DynamicResource HideUnavailableStage}"
IsChecked="{Binding HideUnavailableStage}"
IsEnabled="{c:Binding !CustomStageCode}" />
</StackPanel>
</StackPanel>
<StackPanel
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Horizontal">
<controls:TextBlock
Margin="10"
Block.TextAlignment="Center"
Text="{DynamicResource PenguinID}" />
<TextBox
Width="150"
Margin="10"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding PenguinId}" />
</StackPanel>
</Grid>
</UserControl>

View File

@@ -2,6 +2,7 @@
x:Class="MaaWpfGui.Views.UserControl.RoguelikeSettingsUserControl"
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"
@@ -13,193 +14,104 @@
xmlns:viewModels="clr-namespace:MaaWpfGui.ViewModels"
xmlns:vm="clr-namespace:MaaWpfGui"
d:DataContext="{d:DesignInstance {x:Type ui:SettingsViewModel}}"
d:DesignWidth="550"
d:DesignWidth="220"
mc:Ignorable="d">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Orientation="Vertical">
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<controls:TextBlock Margin="10" Text="{DynamicResource RoguelikeTheme}" />
<ComboBox
Width="110"
IsHitTestVisible="{Binding Idle}"
ItemsSource="{Binding RoguelikeThemeList}"
SelectedValue="{Binding RoguelikeTheme}"
SelectedValuePath="Value" />
</StackPanel>
<StackPanel>
<StackPanel>
<ComboBox
Margin="0,10"
hc:InfoElement.Title="{DynamicResource RoguelikeTheme}"
IsHitTestVisible="{Binding Idle}"
ItemsSource="{Binding RoguelikeThemeList}"
SelectedValue="{Binding RoguelikeTheme}"
SelectedValuePath="Value"
Style="{StaticResource ComboBoxExtend}" />
<ComboBox
Margin="0,10"
hc:InfoElement.Title="{DynamicResource Strategy}"
DisplayMemberPath="Display"
IsHitTestVisible="{Binding Path=Idle}"
ItemsSource="{Binding RoguelikeModeList}"
SelectedValue="{Binding RoguelikeMode}"
SelectedValuePath="Value"
Style="{StaticResource ComboBoxExtend}" />
<hc:NumericUpDown
Margin="0,10"
hc:InfoElement.Title="{DynamicResource StartTimesLimit}"
Style="{StaticResource NumericUpDownExtend}"
Value="{Binding RoguelikeStartsCount}" />
<CheckBox
Margin="0,10"
Content="{DynamicResource RefreshTraderWithDice}"
IsChecked="{Binding RoguelikeRefreshTraderWithDice}" />
</StackPanel>
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<controls:TextBlock
Margin="10"
VerticalAlignment="Center"
Text="{DynamicResource Strategy}" />
<ComboBox
Width="300"
Height="30"
Margin="10"
DisplayMemberPath="Display"
IsHitTestVisible="{Binding Path=Idle}"
ItemsSource="{Binding RoguelikeModeList}"
SelectedValue="{Binding RoguelikeMode}"
SelectedValuePath="Value" />
</StackPanel>
<StackPanel HorizontalAlignment="Center">
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal">
<controls:TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{DynamicResource StartTimesLimit}"
TextWrapping="Wrap" />
<hc:TextBox
Width="100"
Height="30"
Margin="10"
HorizontalAlignment="Center"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
InputMethod.IsInputMethodEnabled="False"
TextWrapping="Wrap">
<hc:TextBox.Text>
<Binding Path="RoguelikeStartsCount">
<Binding.ValidationRules>
<hc:RegexRule Type="Int" />
</Binding.ValidationRules>
</Binding>
</hc:TextBox.Text>
</hc:TextBox>
</StackPanel>
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Horizontal">
<CheckBox
Margin="10"
Content="{DynamicResource InvestmentEnabled}"
IsChecked="{Binding RoguelikeInvestmentEnabled}" />
<CheckBox
Margin="10"
Content="{DynamicResource RefreshTraderWithDice}"
IsChecked="{Binding RoguelikeRefreshTraderWithDice}" />
</StackPanel>
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal">
<controls:TextBlock
VerticalAlignment="Center"
Text="{DynamicResource GoldTimesLimit}"
TextWrapping="Wrap" />
<hc:TextBox
Width="100"
Height="30"
Margin="10"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
InputMethod.IsInputMethodEnabled="False"
IsEnabled="{Binding RoguelikeInvestmentEnabled}"
TextWrapping="Wrap">
<hc:TextBox.Text>
<Binding Path="RoguelikeInvestsCount">
<Binding.ValidationRules>
<hc:RegexRule Type="Int" />
</Binding.ValidationRules>
</Binding>
</hc:TextBox.Text>
</hc:TextBox>
</StackPanel>
<CheckBox
Margin="10"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Content="{DynamicResource StopOnGoldLimit}"
IsChecked="{Binding RoguelikeStopWhenInvestmentFull}"
IsEnabled="{Binding RoguelikeInvestmentEnabled}" />
</StackPanel>
</StackPanel>
<StackPanel
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<StackPanel
HorizontalAlignment="Right"
VerticalAlignment="Top"
Orientation="Horizontal">
<controls:TextBlock
HorizontalAlignment="Right"
VerticalAlignment="Center"
Block.TextAlignment="Right"
Text="{DynamicResource StartingSquad}" />
<ComboBox
Width="300"
Margin="10"
DisplayMemberPath="Display"
IsHitTestVisible="{Binding Idle}"
ItemsSource="{Binding RoguelikeSquadList}"
MaxDropDownHeight="800"
SelectedValue="{Binding RoguelikeSquad}"
SelectedValuePath="Value" />
</StackPanel>
<StackPanel
HorizontalAlignment="Right"
VerticalAlignment="Center"
Orientation="Horizontal">
<controls:TextBlock
HorizontalAlignment="Right"
VerticalAlignment="Center"
Block.TextAlignment="Right"
Text="{DynamicResource StartingRoles}" />
<ComboBox
Width="300"
Margin="10"
DisplayMemberPath="Display"
IsHitTestVisible="{Binding Idle}"
ItemsSource="{Binding RoguelikeRolesList}"
SelectedValue="{Binding RoguelikeRoles}"
SelectedValuePath="Value" />
</StackPanel>
<StackPanel
HorizontalAlignment="Right"
VerticalAlignment="Center"
Orientation="Horizontal">
<controls:TextBlock
MaxWidth="150"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Block.TextAlignment="Right"
Text="{DynamicResource StartingCoreChar}"
<StackPanel>
<CheckBox
Margin="0,10"
Content="{DynamicResource InvestmentEnabled}"
IsChecked="{Binding RoguelikeInvestmentEnabled}" />
<hc:NumericUpDown
Margin="0,10"
hc:InfoElement.Title="{DynamicResource GoldTimesLimit}"
IsEnabled="{Binding RoguelikeInvestmentEnabled}"
Style="{StaticResource NumericUpDownExtend}"
Value="{Binding RoguelikeInvestsCount}" />
<CheckBox
Margin="0,10"
IsChecked="{Binding RoguelikeStopWhenInvestmentFull}"
IsEnabled="{Binding RoguelikeInvestmentEnabled}">
<TextBlock
Block.TextAlignment="Left"
Text="{DynamicResource StopOnGoldLimit}"
TextWrapping="Wrap" />
<hc:TextBox
Width="300"
Margin="10"
HorizontalAlignment="Right"
Text="{Binding RoguelikeCoreChar}"
TextWrapping="Wrap"
ToolTip="{DynamicResource StartingCoreCharTip}" />
</StackPanel>
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Horizontal">
<CheckBox
Margin="10"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Content="{DynamicResource RoguelikeUseSupportUnit}"
IsChecked="{Binding RoguelikeUseSupportUnit}" />
<CheckBox
Margin="10"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Content="{DynamicResource RoguelikeUseNonFriendSupport}"
IsChecked="{Binding RoguelikeEnableNonfriendSupport}"
IsEnabled="{Binding RoguelikeUseSupportUnit}" />
</StackPanel>
</CheckBox>
<ComboBox
Margin="0,10"
hc:InfoElement.Title="{DynamicResource StartingSquad}"
DisplayMemberPath="Display"
IsHitTestVisible="{Binding Idle}"
ItemsSource="{Binding RoguelikeSquadList}"
MaxDropDownHeight="800"
SelectedValue="{Binding RoguelikeSquad}"
SelectedValuePath="Value"
Style="{StaticResource ComboBoxExtend}" />
<ComboBox
Margin="0,10"
hc:InfoElement.Title="{DynamicResource StartingRoles}"
DisplayMemberPath="Display"
IsHitTestVisible="{Binding Idle}"
ItemsSource="{Binding RoguelikeRolesList}"
SelectedValue="{Binding RoguelikeRoles}"
SelectedValuePath="Value"
Style="{StaticResource ComboBoxExtend}" />
<TextBlock
Margin="8,10,8,5"
HorizontalAlignment="Left"
Block.TextAlignment="Center"
Foreground="{DynamicResource PrimaryTextBrush}"
Text="{DynamicResource StartingCoreChar}"
TextWrapping="Wrap" />
<hc:TextBox
Margin="0,0,0,10"
Text="{Binding RoguelikeCoreChar}"
TextWrapping="Wrap"
ToolTip="{DynamicResource StartingCoreCharTip}" />
<CheckBox Margin="0,10" IsChecked="{Binding RoguelikeUseSupportUnit}">
<TextBlock
Block.TextAlignment="Left"
Text="{DynamicResource RoguelikeUseSupportUnit}"
TextWrapping="Wrap" />
</CheckBox>
<CheckBox
Margin="0,10"
IsChecked="{Binding RoguelikeEnableNonfriendSupport}"
IsEnabled="{Binding RoguelikeUseSupportUnit}">
<TextBlock
Block.TextAlignment="Left"
Text="{DynamicResource RoguelikeUseNonFriendSupport}"
TextWrapping="Wrap" />
</CheckBox>
</StackPanel>
</Grid>
</StackPanel>
</UserControl>