1.1.3 -> 1.1.4 第67次更新

This commit is contained in:
Space Time 2024-12-16 18:12:21 +08:00
parent 5e9ab2d928
commit 32871f580a
9 changed files with 183 additions and 308 deletions

View File

@ -9,7 +9,31 @@
"MainMultilangConst.resx": [ "MainConst.cs" ],
"MainMultilangConst.zh.resx": [ "MainConst.cs" ],
"SettingsMultilangConst.resx": [ "SettingsConst.cs" ],
"SettingsMultilangConst.zh.resx": [ "SettingsConst.cs" ]
"SettingsMultilangConst.zh.resx": [ "SettingsConst.cs" ],
"AboutAccentButtonForegroundConv.cs": [ "AboutConv.cs" ],
"AboutVersionButtonContentConv.cs": [ "AboutConv.cs" ],
"MainAdminControlVisibilityConv.cs": [ "MainConv.cs" ],
"MainMihomoButtonContentConv.cs": [ "MainConv.cs" ],
"MainMihomoButtonToolTipConv.cs": [ "MainConv.cs" ],
"MainNginxButtonContentConv.cs": [ "MainConv.cs" ],
"MainNginxButtonToolTipConv.cs": [ "MainConv.cs" ],
"MainNoClickButtonContentConv.cs": [ "MainConv.cs" ],
"MainNoClickButtonToolTipConv.cs": [ "MainConv.cs" ],
"MainProxyButtonIsEnabledConv.cs": [ "MainConv.cs" ],
"MainProxyColumnWidthConv.cs": [ "MainConv.cs" ],
"MainSettingsBoxHintConv.cs": [ "MainConv.cs" ],
"MainSettingsBoxTextConv.cs": [ "MainConv.cs" ],
"MainSettingsBoxToolTipConv.cs": [ "MainConv.cs" ],
"MainSettingsFunctionButtonContentConv.cs": [ "MainConv.cs" ],
"MainSettingsModeButtonContentConv.cs": [ "MainConv.cs" ],
"MainStartButtonIsEnabledConv.cs": [ "MainConv.cs" ],
"MainUpdateHostButtonContentConv.cs": [ "MainConv.cs" ],
"MainUpdateHostButtonIsEnabledConv.cs": [ "MainConv.cs" ],
"MainWinWidthConv.cs": [ "MainConv.cs" ],
"SettingsLangsButtonContentConv.cs": [ "SettingsConv.cs" ],
"SettingsThemesButtonContentConv.cs": [ "SettingsConv.cs" ],
"SettingsWeightsButtonContentConv.cs": [ "SettingsConv.cs" ]
}
}
}

7
Convs/AboutConv.cs Normal file
View File

@ -0,0 +1,7 @@
namespace Sheas_Cealer.Convs;
internal static class AboutConv
{
public static AboutAccentButtonForegroundConv AboutAccentButtonForegroundConv => new();
public static AboutVersionButtonContentConv AboutVersionButtonContentConv => new();
}

23
Convs/MainConv.cs Normal file
View File

@ -0,0 +1,23 @@
namespace Sheas_Cealer.Convs;
internal static class MainConv
{
public static MainAdminControlVisibilityConv MainAdminControlVisibilityConv => new();
public static MainMihomoButtonContentConv MainMihomoButtonContentConv => new();
public static MainMihomoButtonToolTipConv MainMihomoButtonToolTipConv => new();
public static MainNginxButtonContentConv MainNginxButtonContentConv => new();
public static MainNginxButtonToolTipConv MainNginxButtonToolTipConv => new();
public static MainNoClickButtonContentConv MainNoClickButtonContentConv => new();
public static MainNoClickButtonToolTipConv MainNoClickButtonToolTipConv => new();
public static MainProxyButtonIsEnabledConv MainProxyButtonIsEnabledConv => new();
public static MainProxyColumnWidthConv MainProxyColumnWidthConv => new();
public static MainSettingsBoxHintConv MainSettingsBoxHintConv => new();
public static MainSettingsBoxTextConv MainSettingsBoxTextConv => new();
public static MainSettingsBoxToolTipConv MainSettingsBoxToolTipConv => new();
public static MainSettingsFunctionButtonContentConv MainSettingsFunctionButtonContentConv => new();
public static MainSettingsModeButtonContentConv MainSettingsModeButtonContentConv => new();
public static MainStartButtonIsEnabledConv MainStartButtonIsEnabledConv => new();
public static MainUpdateHostButtonContentConv MainUpdateHostButtonContentConv => new();
public static MainUpdateHostButtonIsEnabledConv MainUpdateHostButtonIsEnabledConv => new();
public static MainWinWidthConv MainWinWidthConv => new();
}

8
Convs/SettingsConv.cs Normal file
View File

@ -0,0 +1,8 @@
namespace Sheas_Cealer.Convs;
internal static class SettingsConv
{
public static SettingsLangsButtonContentConv SettingsLangsButtonContentConv => new();
public static SettingsThemesButtonContentConv SettingsThemesButtonContentConv => new();
public static SettingsWeightsButtonContentConv SettingsWeightsButtonContentConv => new();
}

View File

@ -39,5 +39,5 @@ internal partial class GlobalPres : ObservableObject
}
[ObservableProperty]
private static Color accentForegroundColor = (Color)ColorConverter.ConvertFromString("#2196f3");
private static Color accentForegroundColor = (Color)ColorConverter.ConvertFromString("#2196F3");
}

View File

@ -23,7 +23,7 @@ internal static class ForegroundGenerator
return (blackContrast >= 5.5 && whiteContrast >= 2.5 ? null :
blackContrast >= whiteContrast ? Colors.Black : Colors.White,
(Color)ColorConverter.ConvertFromString(blueContrast >= redContrast ? "#2196f3" : "#f44336"));
(Color)ColorConverter.ConvertFromString(blueContrast >= redContrast ? "#2196F3" : "#F44336"));
}
private static double GammaCorrect(double component) => component <= 0.03928 ? component / 12.92 : Math.Pow((component + 0.055) / 1.055, 2.4);

View File

@ -7,8 +7,9 @@
xmlns:convs="clr-namespace:Sheas_Cealer.Convs"
xmlns:preses="clr-namespace:Sheas_Cealer.Preses"
mc:Ignorable="d"
WindowStartupLocation="CenterScreen" ResizeMode="NoResize" SizeToContent="Height" Width="500"
d:DataContext="{d:DesignInstance preses:AboutPres}"
Style="{DynamicResource CommonWindow}" WindowStartupLocation="CenterScreen" ResizeMode="NoResize" SizeToContent="Height" Width="500"
Style="{DynamicResource CommonWindow}"
Loaded="AboutWin_Loaded" KeyDown="AboutWin_KeyDown">
<Grid Margin="5">
<Grid.RowDefinitions>
@ -22,32 +23,18 @@
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Margin="5" d:Foreground="#2196F3" Content="{Binding Source={x:Static consts:AboutConst.DeveloperButtonContent}}" ToolTip="{Binding Source={x:Static consts:AboutConst.DeveloperButtonUrl}}"
Click="AboutButton_Click">
<Button.Foreground>
<Binding Path="AccentForegroundColor">
<Binding.Converter>
<convs:AboutAccentButtonForegroundConv />
</Binding.Converter>
</Binding>
</Button.Foreground>
</Button>
<Button Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Margin="5" d:Foreground="#2196F3"
Foreground="{Binding AccentForegroundColor, Converter={x:Static convs:AboutConv.AboutAccentButtonForegroundConv}}"
Content="{x:Static consts:AboutConst.DeveloperButtonContent}"
ToolTip="{x:Static consts:AboutConst.DeveloperButtonUrl}"
Click="AboutButton_Click" />
<Button x:Name="VersionButton"
Grid.Row="1" Grid.Column="0" Margin="5" d:Foreground="#2196F3" d:Content="# # #: #.#.#" ToolTip="{Binding Source={x:Static consts:AboutConst.VersionButtonUrl}}"
Grid.Row="1" Grid.Column="0" Margin="5" d:Foreground="#2196F3" d:Content="# # #: #.#.#"
Foreground="{Binding AccentForegroundColor, Converter={x:Static convs:AboutConv.AboutAccentButtonForegroundConv}}"
ToolTip="{x:Static consts:AboutConst.VersionButtonUrl}"
Click="AboutButton_Click">
<Button.Foreground>
<Binding Path="AccentForegroundColor">
<Binding.Converter>
<convs:AboutAccentButtonForegroundConv />
</Binding.Converter>
</Binding>
</Button.Foreground>
<Button.Content>
<MultiBinding>
<MultiBinding.Converter>
<convs:AboutVersionButtonContentConv />
</MultiBinding.Converter>
<MultiBinding Converter="{x:Static convs:AboutConv.AboutVersionButtonContentConv}">
<Binding Source="{x:Static consts:AboutConst.VersionButtonLabelContent}" />
<Binding Source="{x:Static consts:AboutConst.VersionButtonVersionContent}" />
<Binding Path="IsSheasCealerUtd" />
@ -55,17 +42,27 @@
</Button.Content>
</Button>
<Button x:Name="EmailButton"
Grid.Row="1" Grid.Column="1" Margin="5" Content="{Binding Source={x:Static consts:AboutConst.EmailButtonContent}}" ToolTip="{Binding Source={x:Static consts:AboutConst.EmailButtonUrl}}"
Grid.Row="1" Grid.Column="1" Margin="5"
Content="{x:Static consts:AboutConst.EmailButtonContent}"
ToolTip="{x:Static consts:AboutConst.EmailButtonUrl}"
Click="AboutButton_Click" />
<Button Grid.Row="0" Grid.Column="2" Margin="5" Content="{Binding Source={x:Static consts:AboutConst.DocumentationButtonContent}}" ToolTip="{Binding Source={x:Static consts:AboutConst.DocumentationButtonUrl}}"
<Button Grid.Row="0" Grid.Column="2" Margin="5"
Content="{x:Static consts:AboutConst.DocumentationButtonContent}"
ToolTip="{x:Static consts:AboutConst.DocumentationButtonUrl}"
Click="AboutButton_Click" />
<Button Grid.Row="1" Grid.Column="2" Margin="5" Content="{Binding Source={x:Static consts:AboutConst.RepositoryButtonContent}}" ToolTip="{Binding Source={x:Static consts:AboutConst.RepositoryButtonUrl}}"
<Button Grid.Row="1" Grid.Column="2" Margin="5"
Content="{x:Static consts:AboutConst.RepositoryButtonContent}"
ToolTip="{x:Static consts:AboutConst.RepositoryButtonUrl}"
Click="AboutButton_Click" />
<Button Grid.Row="0" Grid.Column="3" Margin="5" Content="{Binding Source={x:Static consts:AboutConst.PolicyButtonContent}}" ToolTip="{Binding Source={x:Static consts:AboutConst.PolicyButtonUrl}}"
<Button Grid.Row="0" Grid.Column="3" Margin="5"
Content="{x:Static consts:AboutConst.PolicyButtonContent}"
ToolTip="{x:Static consts:AboutConst.PolicyButtonUrl}"
Click="AboutButton_Click" />
<Button Grid.Row="1" Grid.Column="3" Margin="5" Content="{Binding Source={x:Static consts:AboutConst.AgreementButtonContent}}" ToolTip="{Binding Source={x:Static consts:AboutConst.AgreementButtonUrl}}"
<Button Grid.Row="1" Grid.Column="3" Margin="5"
Content="{x:Static consts:AboutConst.AgreementButtonContent}"
ToolTip="{x:Static consts:AboutConst.AgreementButtonUrl}"
Click="AboutButton_Click" />
</Grid>
</Window>

View File

@ -8,17 +8,12 @@
xmlns:convs="clr-namespace:Sheas_Cealer.Convs"
xmlns:preses="clr-namespace:Sheas_Cealer.Preses"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance preses:MainPres}" AllowDrop="True"
Style="{DynamicResource CommonWindow}" WindowStartupLocation="CenterScreen" ResizeMode="CanMinimize" SizeToContent="Height"
AllowDrop="True"
WindowStartupLocation="CenterScreen" ResizeMode="CanMinimize" SizeToContent="Height"
d:DataContext="{d:DesignInstance preses:MainPres}"
Style="{DynamicResource CommonWindow}"
Width="{Binding Source={x:Static consts:MainConst.IsAdmin}, Converter={x:Static convs:MainConv.MainWinWidthConv}}"
Loaded="MainWin_Loaded" Closing="MainWin_Closing" DragEnter="MainWin_DragEnter" Drop="MainWin_Drop" KeyDown="MainWin_KeyDown">
<Window.Width>
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainWinWidthConv />
</Binding.Converter>
</Binding>
</Window.Width>
<Grid Margin="5">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
@ -35,326 +30,165 @@
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Margin="5" d:Content="# # # #" ToolTip="{Binding Source={x:Static consts:MainConst.SettingsModeButtonToolTip}}"
Click="SettingsModeButton_Click">
<Button.Content>
<Binding Path="SettingsMode">
<Binding.Converter>
<convs:MainSettingsModeButtonContentConv />
</Binding.Converter>
</Binding>
</Button.Content>
</Button>
<Button Grid.Column="0" Margin="5" d:Content="# # # #"
Content="{Binding SettingsMode, Converter={x:Static convs:MainConv.MainSettingsModeButtonContentConv}}"
ToolTip="{x:Static consts:MainConst.SettingsModeButtonToolTip}"
Click="SettingsModeButton_Click" />
<TextBox x:Name="SettingsBox"
Grid.Column="1" Margin="5" VerticalContentAlignment="Center" md:HintAssist.IsFloating="True"
md:HintAssist.Hint="{Binding SettingsMode, Converter={x:Static convs:MainConv.MainSettingsBoxHintConv}}"
ToolTip="{Binding SettingsMode, Converter={x:Static convs:MainConv.MainSettingsBoxToolTipConv}}"
TextChanged="SettingsBox_TextChanged" PreviewDragOver="MainWin_DragEnter">
<TextBox.Text>
<MultiBinding Mode="OneWay" UpdateSourceTrigger="PropertyChanged">
<MultiBinding.Converter>
<convs:MainSettingsBoxTextConv />
</MultiBinding.Converter>
<MultiBinding Mode="OneWay" UpdateSourceTrigger="PropertyChanged"
Converter="{x:Static convs:MainConv.MainSettingsBoxTextConv}">
<Binding Path="SettingsMode" />
<Binding Path="BrowserPath" />
<Binding Path="UpstreamUrl" />
<Binding Path="ExtraArgs" />
</MultiBinding>
</TextBox.Text>
<TextBox.ToolTip>
<Binding Path="SettingsMode">
<Binding.Converter>
<convs:MainSettingsBoxToolTipConv />
</Binding.Converter>
</Binding>
</TextBox.ToolTip>
<md:HintAssist.Hint>
<Binding Path="SettingsMode">
<Binding.Converter>
<convs:MainSettingsBoxHintConv />
</Binding.Converter>
</Binding>
</md:HintAssist.Hint>
</TextBox>
<Button Grid.Column="2" Margin="5" d:Content="# # # #" ToolTip="{Binding Source={x:Static consts:MainConst.SettingsFunctionButtonToolTip}}"
Click="SettingsFunctionButton_Click">
<Button.Content>
<Binding Path="SettingsMode">
<Binding.Converter>
<convs:MainSettingsFunctionButtonContentConv />
</Binding.Converter>
</Binding>
</Button.Content>
</Button>
<Button Grid.Column="2" Margin="5" d:Content="# # # #"
Content="{Binding SettingsMode, Converter={x:Static convs:MainConv.MainSettingsFunctionButtonContentConv}}"
ToolTip="{x:Static consts:MainConst.SettingsFunctionButtonToolTip}"
Click="SettingsFunctionButton_Click" />
</Grid>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition>
<ColumnDefinition.Width>
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainProxyColumnWidthConv />
</Binding.Converter>
</Binding>
</ColumnDefinition.Width>
</ColumnDefinition>
<ColumnDefinition>
<ColumnDefinition.Width>
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainProxyColumnWidthConv />
</Binding.Converter>
</Binding>
</ColumnDefinition.Width>
</ColumnDefinition>
<ColumnDefinition Width="{Binding Source={x:Static consts:MainConst.IsAdmin}, Converter={x:Static convs:MainConv.MainProxyColumnWidthConv}}" />
<ColumnDefinition Width="{Binding Source={x:Static consts:MainConst.IsAdmin}, Converter={x:Static convs:MainConv.MainProxyColumnWidthConv}}" />
</Grid.ColumnDefinitions>
<Button IsDefault="True"
Grid.Column="0" Margin="5" Content="{Binding Source={x:Static consts:MainConst.StartButtonContent}}" ToolTip="{Binding Source={x:Static consts:MainConst.StartButtonToolTip}}"
Grid.Column="0" Margin="5"
Content="{x:Static consts:MainConst.StartButtonContent}"
ToolTip="{x:Static consts:MainConst.StartButtonToolTip}"
Click="StartButton_Click" PreviewMouseDown="StartButton_PreviewMouseDown">
<Button.IsEnabled>
<MultiBinding>
<MultiBinding.Converter>
<convs:MainStartButtonIsEnabledConv />
</MultiBinding.Converter>
<MultiBinding Converter="{x:Static convs:MainConv.MainStartButtonIsEnabledConv}">
<Binding Path="BrowserPath" />
<Binding Path="ExtraArgs" />
</MultiBinding>
</Button.IsEnabled>
</Button>
<Button Grid.Column="1" Margin="5" d:Content="# # # #"
Visibility="{Binding Source={x:Static consts:MainConst.IsAdmin}, Converter={x:Static convs:MainConv.MainAdminControlVisibilityConv}}"
ToolTip="{Binding IsNginxRunning, Converter={x:Static convs:MainConv.MainNginxButtonToolTipConv}}"
Click="NginxButton_Click" PreviewMouseDown="NginxButton_PreviewMouseDown">
<Button.Visibility>
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainAdminControlVisibilityConv />
</Binding.Converter>
</Binding>
</Button.Visibility>
<Button.IsEnabled>
<MultiBinding>
<MultiBinding.Converter>
<convs:MainProxyButtonIsEnabledConv />
</MultiBinding.Converter>
<MultiBinding Converter="{x:Static convs:MainConv.MainProxyButtonIsEnabledConv}">
<Binding Path="IsNginxExist" />
<Binding Path="IsNginxIniting" />
</MultiBinding>
</Button.IsEnabled>
<Button.Content>
<MultiBinding>
<MultiBinding.Converter>
<convs:MainNginxButtonContentConv />
</MultiBinding.Converter>
<MultiBinding Converter="{x:Static convs:MainConv.MainNginxButtonContentConv}">
<Binding Path="IsNginxRunning" />
<Binding Path="IsNginxIniting" />
</MultiBinding>
</Button.Content>
<Button.ToolTip>
<Binding Path="IsNginxRunning">
<Binding.Converter>
<convs:MainNginxButtonToolTipConv />
</Binding.Converter>
</Binding>
</Button.ToolTip>
</Button>
<Button Grid.Column="2" Margin="5" d:Content="# # # #"
Visibility="{Binding Source={x:Static consts:MainConst.IsAdmin}, Converter={x:Static convs:MainConv.MainAdminControlVisibilityConv}}"
ToolTip="{Binding IsMihomoRunning, Converter={x:Static convs:MainConv.MainMihomoButtonToolTipConv}}"
Click="MihomoButton_Click" PreviewMouseDown="MihomoButton_PreviewMouseDown">
<Button.Visibility>
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainAdminControlVisibilityConv />
</Binding.Converter>
</Binding>
</Button.Visibility>
<Button.IsEnabled>
<MultiBinding>
<MultiBinding.Converter>
<convs:MainProxyButtonIsEnabledConv />
</MultiBinding.Converter>
<MultiBinding Converter="{x:Static convs:MainConv.MainProxyButtonIsEnabledConv}">
<Binding Path="IsMihomoExist" />
<Binding Path="IsMihomoIniting" />
</MultiBinding>
</Button.IsEnabled>
<Button.Content>
<MultiBinding>
<MultiBinding.Converter>
<convs:MainMihomoButtonContentConv />
</MultiBinding.Converter>
<MultiBinding Converter="{x:Static convs:MainConv.MainMihomoButtonContentConv}">
<Binding Path="IsMihomoRunning" />
<Binding Path="IsMihomoIniting" />
</MultiBinding>
</Button.Content>
<Button.ToolTip>
<Binding Path="IsMihomoRunning">
<Binding.Converter>
<convs:MainMihomoButtonToolTipConv />
</Binding.Converter>
</Binding>
</Button.ToolTip>
</Button>
</Grid>
<Grid Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition>
<ColumnDefinition.Width>
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainProxyColumnWidthConv />
</Binding.Converter>
</Binding>
</ColumnDefinition.Width>
</ColumnDefinition>
<ColumnDefinition>
<ColumnDefinition.Width>
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainProxyColumnWidthConv />
</Binding.Converter>
</Binding>
</ColumnDefinition.Width>
</ColumnDefinition>
<ColumnDefinition Width="{Binding Source={x:Static consts:MainConst.IsAdmin}, Converter={x:Static convs:MainConv.MainProxyColumnWidthConv}}" />
<ColumnDefinition Width="{Binding Source={x:Static consts:MainConst.IsAdmin}, Converter={x:Static convs:MainConv.MainProxyColumnWidthConv}}" />
</Grid.ColumnDefinitions>
<Button x:Name="EditLocalHostButton"
Grid.Column="0" Margin="5" Content="{Binding Source={x:Static consts:MainConst.EditLocalHostButtonContent}}" ToolTip="{Binding Source={x:Static consts:MainConst.EditLocalHostButtonToolTip}}"
Grid.Column="0" Margin="5"
Content="{x:Static consts:MainConst.EditLocalHostButtonContent}"
ToolTip="{x:Static consts:MainConst.EditLocalHostButtonToolTip}"
Click="EditHostButton_Click" />
<Button Grid.Column="1" Margin="5" Content="{Binding Source={x:Static consts:MainConst.EditUpstreamHostButtonContent}}" ToolTip="{Binding Source={x:Static consts:MainConst.EditUpstreamHostButtonToolTip}}"
<Button Grid.Column="1" Margin="5"
Content="{x:Static consts:MainConst.EditUpstreamHostButtonContent}"
ToolTip="{x:Static consts:MainConst.EditUpstreamHostButtonToolTip}"
Click="EditHostButton_Click" />
<Button x:Name="EditNginxConfButton"
Grid.Column="2" Margin="5" Content="{Binding Source={x:Static consts:MainConst.EditNginxConfButtonContent}}" ToolTip="{Binding Source={x:Static consts:MainConst.EditNginxConfButtonToolTip}}"
Grid.Column="2" Margin="5"
Visibility="{Binding Source={x:Static consts:MainConst.IsAdmin}, Converter={x:Static convs:MainConv.MainAdminControlVisibilityConv}}"
Content="{x:Static consts:MainConst.EditNginxConfButtonContent}"
ToolTip="{x:Static consts:MainConst.EditNginxConfButtonToolTip}"
Click="EditConfButton_Click">
<Button.IsEnabled>
<MultiBinding>
<MultiBinding.Converter>
<convs:MainProxyButtonIsEnabledConv />
</MultiBinding.Converter>
<MultiBinding Converter="{x:Static convs:MainConv.MainProxyButtonIsEnabledConv}">
<Binding Path="IsNginxExist" />
<Binding Path="IsNginxIniting" />
</MultiBinding>
</Button.IsEnabled>
<Button.Visibility>
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainAdminControlVisibilityConv />
</Binding.Converter>
</Binding>
</Button.Visibility>
</Button>
<Button Grid.Column="3" Margin="5" Content="{Binding Source={x:Static consts:MainConst.EditMihomoConfButtonContent}}" ToolTip="{Binding Source={x:Static consts:MainConst.EditMihomoConfButtonToolTip}}"
<Button Grid.Column="3" Margin="5"
Visibility="{Binding Source={x:Static consts:MainConst.IsAdmin}, Converter={x:Static convs:MainConv.MainAdminControlVisibilityConv}}"
Content="{x:Static consts:MainConst.EditMihomoConfButtonContent}"
ToolTip="{x:Static consts:MainConst.EditMihomoConfButtonToolTip}"
Click="EditConfButton_Click">
<Button.IsEnabled>
<MultiBinding>
<MultiBinding.Converter>
<convs:MainProxyButtonIsEnabledConv />
</MultiBinding.Converter>
<MultiBinding Converter="{x:Static convs:MainConv.MainProxyButtonIsEnabledConv}">
<Binding Path="IsMihomoExist" />
<Binding Path="IsMihomoIniting" />
</MultiBinding>
</Button.IsEnabled>
<Button.Visibility>
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainAdminControlVisibilityConv />
</Binding.Converter>
</Binding>
</Button.Visibility>
</Button>
</Grid>
<Grid Grid.Row="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition>
<ColumnDefinition.Width>
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainProxyColumnWidthConv />
</Binding.Converter>
</Binding>
</ColumnDefinition.Width>
</ColumnDefinition>
<ColumnDefinition Width="{Binding Source={x:Static consts:MainConst.IsAdmin}, Converter={x:Static convs:MainConv.MainProxyColumnWidthConv}}" />
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Margin="5" d:Content="# # # # # #" ToolTip="{Binding Source={x:Static consts:MainConst.UpdateUpstreamHostButtonToolTip}}"
Click="UpdateUpstreamHostButton_Click">
<Button.IsEnabled>
<Binding Path="UpstreamUrl">
<Binding.Converter>
<convs:MainUpdateHostButtonIsEnabledConv />
</Binding.Converter>
</Binding>
</Button.IsEnabled>
<Button.Content>
<Binding Path="IsUpstreamHostUtd">
<Binding.Converter>
<convs:MainUpdateHostButtonContentConv />
</Binding.Converter>
</Binding>
</Button.Content>
</Button>
<Button Grid.Column="0" Margin="5" d:Content="# # # # # #"
IsEnabled="{Binding UpstreamUrl, Converter={x:Static convs:MainConv.MainUpdateHostButtonIsEnabledConv}}"
Content="{Binding IsUpstreamHostUtd, Converter={x:Static convs:MainConv.MainUpdateHostButtonContentConv}}"
ToolTip="{x:Static consts:MainConst.UpdateUpstreamHostButtonToolTip}"
Click="UpdateUpstreamHostButton_Click" />
<Button x:Name="EditHostsConfButton"
Grid.Column="1" Margin="5" Content="{Binding Source={x:Static consts:MainConst.EditHostsConfButtonContent}}" ToolTip="{Binding Source={x:Static consts:MainConst.EditHostsConfButtonToolTip}}"
Click="EditConfButton_Click">
<Button.Visibility>
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainAdminControlVisibilityConv />
</Binding.Converter>
</Binding>
</Button.Visibility>
</Button>
Grid.Column="1" Margin="5"
Visibility="{Binding Source={x:Static consts:MainConst.IsAdmin}, Converter={x:Static convs:MainConv.MainAdminControlVisibilityConv}}"
Content="{x:Static consts:MainConst.EditHostsConfButtonContent}"
ToolTip="{x:Static consts:MainConst.EditHostsConfButtonToolTip}"
Click="EditConfButton_Click" />
</Grid>
<Grid Grid.Row="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition>
<ColumnDefinition.Width>
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainProxyColumnWidthConv />
</Binding.Converter>
</Binding>
</ColumnDefinition.Width>
</ColumnDefinition>
<ColumnDefinition Width="{Binding Source={x:Static consts:MainConst.IsAdmin}, Converter={x:Static convs:MainConv.MainProxyColumnWidthConv}}" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Margin="5" Content="{Binding Source={x:Static consts:MainConst.SettingsButtonContent}}" ToolTip="{Binding Source={x:Static consts:MainConst.SettingsButtonToolTip}}"
<Button Grid.Column="0" Margin="5"
Content="{x:Static consts:MainConst.SettingsButtonContent}"
ToolTip="{x:Static consts:MainConst.SettingsButtonToolTip}"
Click="SettingsButton_Click" />
<Button Focusable="False"
Grid.Column="1" Margin="5" d:Content="# # # #"
Click="NoClickButton_Click">
<Button.Visibility>
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainAdminControlVisibilityConv />
</Binding.Converter>
</Binding>
</Button.Visibility>
<Button.Content>
<Binding Path="IsFlashing">
<Binding.Converter>
<convs:MainNoClickButtonContentConv />
</Binding.Converter>
</Binding>
</Button.Content>
<Button.ToolTip>
<Binding Path="IsFlashing">
<Binding.Converter>
<convs:MainNoClickButtonToolTipConv />
</Binding.Converter>
</Binding>
</Button.ToolTip>
</Button>
<Button Grid.Column="2" Margin="5" Content="{Binding Source={x:Static consts:MainConst.AboutButtonContent}}" ToolTip="{Binding Source={x:Static consts:MainConst.AboutButtonToolTip}}"
Visibility="{Binding Source={x:Static consts:MainConst.IsAdmin}, Converter={x:Static convs:MainConv.MainAdminControlVisibilityConv}}"
Content="{Binding IsFlashing, Converter={x:Static convs:MainConv.MainNoClickButtonContentConv}}"
ToolTip="{Binding IsFlashing, Converter={x:Static convs:MainConv.MainNoClickButtonToolTipConv}}"
Click="NoClickButton_Click" />
<Button Grid.Column="2" Margin="5"
Content="{x:Static consts:MainConst.AboutButtonContent}"
ToolTip="{x:Static consts:MainConst.AboutButtonToolTip}"
Click="AboutButton_Click" />
</Grid>
</Grid>

View File

@ -7,8 +7,9 @@
xmlns:convs="clr-namespace:Sheas_Cealer.Convs"
xmlns:preses="clr-namespace:Sheas_Cealer.Preses"
mc:Ignorable="d"
WindowStartupLocation="CenterScreen" ResizeMode="NoResize" SizeToContent="Height" Width="500"
d:DataContext="{d:DesignInstance preses:SettingsPres}"
Style="{DynamicResource CommonWindow}" WindowStartupLocation="CenterScreen" ResizeMode="NoResize" SizeToContent="Height" Width="500"
Style="{DynamicResource CommonWindow}"
KeyDown="SettingsWin_KeyDown">
<Grid Margin="5">
<Grid.RowDefinitions>
@ -20,40 +21,21 @@
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Grid.Row="0" Grid.Column="0" Margin="5" d:Content="# # # #" ToolTip="{Binding Source={x:Static consts:SettingsConst.ThemesButtonToolTip}}"
Click="ThemesButton_Click">
<Button.Content>
<Binding Path="IsLightTheme">
<Binding.Converter>
<convs:SettingsThemesButtonContentConv />
</Binding.Converter>
</Binding>
</Button.Content>
</Button>
<Button Grid.Row="0" Grid.Column="1" Margin="5" d:Content="# # # #" ToolTip="{Binding Source={x:Static consts:SettingsConst.LangsButtonToolTip}}"
Click="LangsButton_Click">
<Button.Content>
<Binding Path="IsEnglishLang">
<Binding.Converter>
<convs:SettingsLangsButtonContentConv />
</Binding.Converter>
</Binding>
</Button.Content>
</Button>
<Button Grid.Row="1" Grid.Column="0" Margin="5" Content="{Binding Source={x:Static consts:SettingsConst.ColorsButtonContent}}" ToolTip="{Binding Source={x:Static consts:SettingsConst.ColorsButtonToolTip}}"
<Button Grid.Row="0" Grid.Column="0" Margin="5" d:Content="# # # #"
Content="{Binding IsLightTheme, Converter={x:Static convs:SettingsConv.SettingsThemesButtonContentConv}}"
ToolTip="{x:Static consts:SettingsConst.ThemesButtonToolTip}"
Click="ThemesButton_Click" />
<Button Grid.Row="0" Grid.Column="1" Margin="5" d:Content="# # # #"
Content="{Binding IsEnglishLang, Converter={x:Static convs:SettingsConv.SettingsLangsButtonContentConv}}"
ToolTip="{x:Static consts:SettingsConst.LangsButtonToolTip}"
Click="LangsButton_Click" />
<Button Grid.Row="1" Grid.Column="0" Margin="5"
Content="{x:Static consts:SettingsConst.ColorsButtonContent}"
ToolTip="{x:Static consts:SettingsConst.ColorsButtonToolTip}"
Click="ColorsButton_Click" />
<Button Grid.Row="1" Grid.Column="1" Margin="5" d:Content="# # # #" ToolTip="{Binding Source={x:Static consts:SettingsConst.WeightsButtonToolTip}}"
Click="WeightsButton_Click">
<Button.Content>
<Binding Path="IsLightWeight">
<Binding.Converter>
<convs:SettingsWeightsButtonContentConv />
</Binding.Converter>
</Binding>
</Button.Content>
</Button>
<Button Grid.Row="1" Grid.Column="1" Margin="5" d:Content="# # # #"
Content="{Binding IsLightWeight, Converter={x:Static convs:SettingsConv.SettingsWeightsButtonContentConv}}"
ToolTip="{x:Static consts:SettingsConst.WeightsButtonToolTip}"
Click="WeightsButton_Click" />
</Grid>
</Window>