Merge pull request #1664 from MaaAssistantArknights/feat/perf_ui

feat: 优化图形化界面 (fix #1648)
This commit is contained in:
MistEO
2022-08-26 23:21:07 +08:00
committed by GitHub
5 changed files with 245 additions and 226 deletions

View File

@@ -29,7 +29,7 @@ namespace MeoAsstGui
/// <param name="weight">The font weight.</param>
public LogItemViewModel(string content, string color = LogColor.Message, string weight = "Regular")
{
Time = DateTime.Now.ToString("MM'-'dd' 'HH':'mm':'ss") + " ";
Time = DateTime.Now.ToString("MM'-'dd' 'HH':'mm':'ss");
this.Content = content;
this.Color = color;
this.Weight = weight;

View File

@@ -10,176 +10,201 @@
xmlns:s="https://github.com/canton7/Stylet"
xmlns:vm="clr-namespace:MeoAsstGui;assembly=MeoAsstGui"
d:DataContext="{d:DesignInstance {x:Type vm:TaskQueueViewModel}}"
d:DesignWidth="300"
d:DesignWidth="250"
mc:Ignorable="d">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="122" />
</Grid.ColumnDefinitions>
<Grid
Width="220">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel
Grid.Row="0"
Grid.Column="0"
Orientation="Vertical">
<CheckBox
Height="30"
Margin="10,6"
Content="{DynamicResource UseSanityPotion}"
IsChecked="{Binding UseMedicine}" VerticalContentAlignment="Center" />
<CheckBox
Height="30"
Margin="10,6"
Content="{DynamicResource UseOriginitePrime}"
IsChecked="{Binding UseStone}"
ToolTip="{DynamicResource CheckBoxesNotSaved}" VerticalContentAlignment="Center" />
<CheckBox
Height="30"
Margin="10,6"
Content="{DynamicResource PerformBattles}"
IsChecked="{Binding HasTimesLimited}"
ToolTip="{DynamicResource CheckBoxesNotSaved}" VerticalContentAlignment="Center" />
</StackPanel>
<StackPanel
Grid.Row="0"
Grid.Column="1"
Grid.ColumnSpan="3"
Orientation="Vertical">
<hc:TextBox
Height="30"
Margin="0,6"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding MedicineNumber}"
TextType="Int"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Width="80" MaxWidth="80" HorizontalAlignment="Left" />
<hc:TextBox
Height="30"
Margin="0,6"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding StoneNumber}"
TextType="Int"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Width="80" MaxWidth="80" HorizontalAlignment="Left" />
<hc:TextBox
Height="30"
Margin="0,6"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding MaxTimes}"
TextType="Int"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Width="80" MaxWidth="80" HorizontalAlignment="Left"/>
</StackPanel>
<StackPanel Grid.Row="1" Orientation="Vertical">
<CheckBox
Height="30"
Margin="10,6"
Content="{DynamicResource AssignedMaterial}"
IsChecked="{Binding IsSpecifiedDrops}"
ToolTip="{DynamicResource NoAutoNavigation}" VerticalContentAlignment="Center" />
<Grid Height="42">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
Style="{StaticResource TextBlockDefault}"
Text="{DynamicResource Quantity}"
TextAlignment="Center" />
</Grid>
</StackPanel>
<StackPanel
Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="2"
Orientation="Vertical">
<ComboBox
Height="30"
Margin="0,6"
DisplayMemberPath="Display"
IsDropDownOpen="{Binding IsDropDown}"
IsEditable="True"
IsTextSearchEnabled="True"
ItemsSource="{Binding DropsList}"
SelectedValue="{Binding DropsItemId}"
SelectedValuePath="Value"
Text="{Binding DropsItem}" VerticalContentAlignment="Center" />
<hc:TextBox
Height="30"
Margin="0,6"
InputMethod.IsInputMethodEnabled="False"
IsEnabled="{Binding IsSpecifiedDrops}"
Text="{Binding DropsQuantity}"
TextType="Int"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center" HorizontalAlignment="Left" Width="80" MaxWidth="80"/>
</StackPanel>
<StackPanel Grid.Row="2" Orientation="Vertical">
<Grid Height="42">
<TextBlock
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="100" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<StackPanel
Orientation="Vertical">
<CheckBox
Height="30"
Margin="10,6"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Style="{StaticResource TextBlockDefault}"
Text="{DynamicResource StageSelect}"
TextAlignment="Center"
TextWrapping="Wrap" />
</Grid>
<Grid Height="42">
<TextBlock
Content="{DynamicResource UseSanityPotion}"
IsChecked="{Binding UseMedicine}"
VerticalContentAlignment="Center" />
<CheckBox
Height="30"
Margin="10,6"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Style="{StaticResource TextBlockDefault}"
Text="{DynamicResource StageSelect2}"
TextAlignment="Center"
TextWrapping="Wrap"
Visibility="{Binding AlternateStageDisplay}" />
</Grid>
</StackPanel>
<StackPanel
Grid.Row="2"
Grid.Column="1"
Grid.ColumnSpan="2"
Orientation="Vertical">
<ComboBox
Height="30"
Margin="0,6"
Padding="6,0,0,0"
DisplayMemberPath="Display"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
ItemsSource="{Binding StageList}"
SelectedValue="{Binding Stage1}"
SelectedValuePath="Value"
VerticalContentAlignment="Center" />
<ComboBox
Height="30"
Margin="0,6"
Padding="6,0,0,0"
DisplayMemberPath="Display"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
ItemsSource="{Binding StageList}"
SelectedValue="{Binding Stage2}"
SelectedValuePath="Value"
Visibility="{Binding AlternateStageDisplay}"
VerticalContentAlignment="Center" />
</StackPanel>
<StackPanel
Grid.Row="3"
Grid.Column="2"
Grid.ColumnSpan="2"
>
Content="{DynamicResource UseOriginitePrime}"
IsChecked="{Binding UseStone}"
ToolTip="{DynamicResource CheckBoxesNotSaved}"
VerticalContentAlignment="Center" />
<CheckBox
Height="30"
Margin="10,6"
Content="{DynamicResource PerformBattles}"
IsChecked="{Binding HasTimesLimited}"
ToolTip="{DynamicResource CheckBoxesNotSaved}"
VerticalContentAlignment="Center" />
</StackPanel>
<StackPanel
Grid.Column="1"
Orientation="Vertical">
<hc:TextBox
Height="30"
Width="60"
Margin="0,6"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding MedicineNumber}"
TextType="Int"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
HorizontalAlignment="Left" />
<hc:TextBox
Height="30"
Width="60"
Margin="0,6"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding StoneNumber}"
TextType="Int"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
HorizontalAlignment="Left" />
<hc:TextBox
Height="30"
Width="60"
Margin="0,6"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding MaxTimes}"
TextType="Int"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
HorizontalAlignment="Left"/>
</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"
Content="{DynamicResource AssignedMaterial}"
IsChecked="{Binding IsSpecifiedDrops}"
ToolTip="{DynamicResource NoAutoNavigation}"
VerticalContentAlignment="Center" />
<Grid
Height="42"
Visibility="{c:Binding IsSpecifiedDrops}" >
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
Style="{StaticResource TextBlockDefault}"
Text="{DynamicResource Quantity}"
TextAlignment="Center" />
</Grid>
</StackPanel>
<StackPanel
Grid.Column="1"
Orientation="Vertical">
<ComboBox
Height="30"
Margin="0,6"
DisplayMemberPath="Display"
IsDropDownOpen="{Binding IsDropDown}"
IsEditable="True"
IsTextSearchEnabled="True"
ItemsSource="{Binding DropsList}"
SelectedValue="{Binding DropsItemId}"
SelectedValuePath="Value"
Text="{Binding DropsItem}"
VerticalContentAlignment="Center" />
<hc:TextBox
Height="30"
Width="60"
Margin="0,6"
InputMethod.IsInputMethodEnabled="False"
Visibility="{c:Binding IsSpecifiedDrops}"
Text="{Binding DropsQuantity}"
TextType="Int"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
HorizontalAlignment="Left"/>
</StackPanel>
</Grid>
<Grid
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="100" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<StackPanel Grid.Row="2" Orientation="Vertical">
<Grid Height="42">
<TextBlock
Margin="10,6"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Style="{StaticResource TextBlockDefault}"
Text="{DynamicResource StageSelect}"
TextAlignment="Center"
TextWrapping="Wrap" />
</Grid>
<Grid Height="42">
<TextBlock
Margin="10,6"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Style="{StaticResource TextBlockDefault}"
Text="{DynamicResource StageSelect2}"
TextAlignment="Center"
TextWrapping="Wrap"
Visibility="{Binding AlternateStageDisplay}" />
</Grid>
</StackPanel>
<StackPanel
Grid.Row="2"
Grid.Column="1"
Orientation="Vertical">
<ComboBox
Height="30"
Margin="0,6"
Padding="6,0,0,0"
DisplayMemberPath="Display"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
ItemsSource="{Binding StageList}"
SelectedValue="{Binding Stage1}"
SelectedValuePath="Value"
VerticalContentAlignment="Center" />
<ComboBox
Height="30"
Margin="0,6"
Padding="6,0,0,0"
DisplayMemberPath="Display"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
ItemsSource="{Binding StageList}"
SelectedValue="{Binding Stage2}"
SelectedValuePath="Value"
Visibility="{Binding AlternateStageDisplay}"
VerticalContentAlignment="Center" />
</StackPanel>
</Grid>
<StackPanel Grid.Row="3">
<Button
Height="30"
Margin="0,6"
Padding="10,2"
Padding="14,2"
Command="{s:Action SetParams}"
Content="{DynamicResource Amend}"
FontSize="10"
Visibility="{c:Binding !Idle}" Height="30" HorizontalContentAlignment="Center" HorizontalAlignment="Right" />
Visibility="{c:Binding !Idle}"
HorizontalContentAlignment="Center"
HorizontalAlignment="Right" />
</StackPanel>
</Grid>
</UserControl>

View File

@@ -547,7 +547,7 @@ namespace MeoAsstGui
}
private int _selectedAllWidth =
ViewStatusStorage.Get("GUI.InverseClearMode", "Clear") == "ClearInverse" ? SelectedAllWidthWhenBoth : 90;
ViewStatusStorage.Get("GUI.InverseClearMode", "Clear") == "ClearInverse" ? SelectedAllWidthWhenBoth : 85;
/// <summary>
/// Gets or sets the width of "Select All".
@@ -568,9 +568,9 @@ namespace MeoAsstGui
/// <summary>
/// The width of "Select All" when both.
/// </summary>
public const int SelectedAllWidthWhenBoth = 85;
public const int SelectedAllWidthWhenBoth = 80;
private int _inverseSelectedWidth = 95;
private int _inverseSelectedWidth = 90;
/// <summary>
/// Gets or sets the width of "Select inversely".

View File

@@ -8,7 +8,9 @@
xmlns:vm="clr-namespace:MeoAsstGui;assembly=MeoAsstGui"
Title="{Binding WindowTitle}"
Width="800"
Height="595"
MinWidth="800"
Height="600"
MinHeight="600"
d:DataContext="{d:DesignInstance {x:Type vm:RootViewModel}}"
mc:Ignorable="d">
<DockPanel>

View File

@@ -16,39 +16,35 @@
mc:Ignorable="d" MinWidth="720">
<Grid Margin="20">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<!--<ColumnDefinition Width="5" />-->
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Border
MaxWidth="260"
Width="210"
MaxWidth="210"
BorderBrush="{DynamicResource BorderBrush}"
BorderThickness="1"
CornerRadius="4">
<Grid
Grid.Row="0"
Width="200"
Width="190"
Margin="0">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ListBox
x:Name="TaskList"
Grid.Row="0"
Grid.ColumnSpan="2"
Width="200"
Width="190"
Margin="0,10,0,0"
HorizontalAlignment="Center"
dd:DragDrop.IsDragSource="{Binding Idle}"
@@ -69,50 +65,50 @@
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Button
Grid.Row="1"
Grid.Column="0"
Width="{Binding SelectedAllWidth}"
Height="30"
VerticalAlignment="Top"
Command="{s:Action SelectedAll}"
Content="{DynamicResource SelectAll}"
IsEnabled="{Binding Idle}" />
<hc:SplitButton
Grid.Row="1"
Grid.Column="1"
Width="{Binding InverseSelectedWidth}"
Height="30"
VerticalAlignment="Top"
Command="{s:Action InverseSelected}"
Content="{Binding InverseShowText}"
IsEnabled="{Binding Idle}"
Visibility="{Binding InverseShowVisibility}">
<hc:SplitButton.DropDownContent>
<MenuItem
Width="{Binding InverseSelectedWidth}"
Command="{s:Action ChangeInverseMode}"
Header="{Binding InverseMenuText}" />
</hc:SplitButton.DropDownContent>
</hc:SplitButton>
<Button
Grid.Row="1"
Grid.Column="1"
Width="90"
Height="30"
VerticalAlignment="Top"
Command="{s:Action InverseSelected}"
Content="{Binding InverseShowText}"
IsEnabled="{Binding Idle}"
Visibility="{Binding NotInverseShowVisibility}" />
<Grid
Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button
Width="{Binding SelectedAllWidth}"
Height="30"
VerticalAlignment="Top"
Command="{s:Action SelectedAll}"
Content="{DynamicResource SelectAll}"
IsEnabled="{Binding Idle}" />
<hc:SplitButton
Grid.Column="1"
Width="{Binding InverseSelectedWidth}"
Height="30"
VerticalAlignment="Top"
Command="{s:Action InverseSelected}"
Content="{Binding InverseShowText}"
IsEnabled="{Binding Idle}"
Visibility="{Binding InverseShowVisibility}">
<hc:SplitButton.DropDownContent>
<MenuItem
Width="{Binding InverseSelectedWidth}"
Command="{s:Action ChangeInverseMode}"
Header="{Binding InverseMenuText}" />
</hc:SplitButton.DropDownContent>
</hc:SplitButton>
<Button
Grid.Column="1"
Width="90"
Height="30"
VerticalAlignment="Top"
Command="{s:Action InverseSelected}"
Content="{Binding InverseShowText}"
IsEnabled="{Binding Idle}"
Visibility="{Binding NotInverseShowVisibility}" />
</Grid>
</Grid>
</Border>
<Grid
Margin="20,10"
Margin="10"
Grid.Row="1" HorizontalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
@@ -135,27 +131,23 @@
SelectedValuePath="Value"/>
</Grid>
<Grid
Margin="0,10"
Grid.Row="2" MaxWidth="280">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
Grid.Row="2">
<Button
Height="50"
MinWidth="100"
MaxWidth="100"
Margin="5"
Visibility="{Binding Idle, Converter={StaticResource Boolean2VisibilityConverter}}"
Command="{s:Action LinkStart}"
Content="{DynamicResource LinkStart}"
IsEnabled="{Binding Idle}" MinWidth="100" />
Content="{DynamicResource LinkStart}" />
<Button
Grid.Column="1"
Height="50"
MinWidth="100"
MaxWidth="100"
Margin="5"
Visibility="{c:Binding Path=!Idle}"
Command="{s:Action Stop}"
Content="{DynamicResource Stop}" MinWidth="100" />
Content="{DynamicResource Stop}" />
</Grid>
<!--<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment ="Center" >-->
@@ -198,7 +190,7 @@
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock
Width="100"
Width="95"
Margin="0,5"
Foreground="Gray"
Style="{StaticResource TextBlockDefault}"