1.1.3 -> 1.1.4 第62次更新

This commit is contained in:
Space Time 2024-12-14 13:27:43 +08:00
parent ee99628508
commit f8501fc05b
3 changed files with 28 additions and 29 deletions

View File

@ -7,12 +7,16 @@ internal static class ForegroundGenerator
{
internal static (Color?, Color) GetForeground(int red, int green, int blue)
{
double luminance = 0.2126 * GammaCorrect(red / 255.0) + 0.7152 * GammaCorrect(green / 255.0) + 0.0722 * GammaCorrect(blue / 255.0);
double redComponent = red / 255.0, greenComponent = green / 255.0, blueComponent = blue / 255.0;
double luminance = 0.2126 * GammaCorrect(redComponent) + 0.7152 * GammaCorrect(greenComponent) + 0.0722 * GammaCorrect(blueComponent);
double blackContrast = (luminance + 0.05) / 0.05;
double whiteContrast = 1.05 / (luminance + 0.05);
double hue = GetHue(red / 255.0, green / 255.0, blue / 255.0);
double hue = redComponent > greenComponent && redComponent > blueComponent ? 60 * ((greenComponent - blueComponent) / (redComponent - Math.Min(greenComponent, blueComponent)) + (greenComponent < blueComponent ? 6 : 0)) :
greenComponent > blueComponent && greenComponent > redComponent ? 60 * ((blueComponent - redComponent) / (greenComponent - Math.Min(blueComponent, redComponent)) + 2) :
blueComponent > redComponent && blueComponent > greenComponent ? 60 * ((redComponent - greenComponent) / (blueComponent - Math.Min(redComponent, greenComponent)) + 4) : 0;
double blueContrast = Math.Min(Math.Abs(hue - 206.57), 360 - Math.Abs(hue - 206.57));
double redContrast = Math.Min(Math.Abs(hue - 4.11), 360 - Math.Abs(hue - 4.11));
@ -23,9 +27,4 @@ internal static class ForegroundGenerator
}
private static double GammaCorrect(double component) => component <= 0.03928 ? component / 12.92 : Math.Pow((component + 0.055) / 1.055, 2.4);
private static double GetHue(double redComponent, double greenComponent, double blueComponent) =>
redComponent > greenComponent && redComponent > blueComponent ? 60 * ((greenComponent - blueComponent) / (redComponent - Math.Min(greenComponent, blueComponent)) + (greenComponent < blueComponent ? 6 : 0)) :
greenComponent > blueComponent && greenComponent > redComponent ? 60 * ((blueComponent - redComponent) / (greenComponent - Math.Min(blueComponent, redComponent)) + 2) :
blueComponent > redComponent && blueComponent > greenComponent ? 60 * ((redComponent - greenComponent) / (blueComponent - Math.Min(redComponent, greenComponent)) + 4) : 0;
}

View File

@ -22,7 +22,7 @@
<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}, Mode=OneTime}" ToolTip="{Binding Source={x:Static consts:AboutConst.DeveloperButtonUrl}, Mode=OneTime}"
<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">
@ -33,7 +33,7 @@
</Button.Foreground>
</Button>
<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}, Mode=OneTime}"
Grid.Row="1" Grid.Column="0" Margin="5" d:Foreground="#2196F3" d:Content="# # #: #.#.#" ToolTip="{Binding Source={x:Static consts:AboutConst.VersionButtonUrl}}"
Click="AboutButton_Click">
<Button.Foreground>
<Binding Path="AccentForegroundColor">
@ -48,24 +48,24 @@
<convs:AboutVersionButtonContentConv />
</MultiBinding.Converter>
<Binding Source="{x:Static consts:AboutConst.VersionButtonLabelContent}" Mode="OneTime" />
<Binding Source="{x:Static consts:AboutConst.VersionButtonVersionContent}" Mode="OneTime" />
<Binding Source="{x:Static consts:AboutConst.VersionButtonLabelContent}" />
<Binding Source="{x:Static consts:AboutConst.VersionButtonVersionContent}" />
<Binding Path="IsSheasCealerUtd" />
</MultiBinding>
</Button.Content>
</Button>
<Button x:Name="EmailButton"
Grid.Row="1" Grid.Column="1" Margin="5" Content="{Binding Source={x:Static consts:AboutConst.EmailButtonContent}, Mode=OneTime}" ToolTip="{Binding Source={x:Static consts:AboutConst.EmailButtonUrl}, Mode=OneTime}"
Grid.Row="1" Grid.Column="1" Margin="5" Content="{Binding Source={x:Static consts:AboutConst.EmailButtonContent}}" ToolTip="{Binding Source={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}, Mode=OneTime}" ToolTip="{Binding Source={x:Static consts:AboutConst.DocumentationButtonUrl}, Mode=OneTime}"
<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}}"
Click="AboutButton_Click" />
<Button Grid.Row="1" Grid.Column="2" Margin="5" Content="{Binding Source={x:Static consts:AboutConst.RepositoryButtonContent}, Mode=OneTime}" ToolTip="{Binding Source={x:Static consts:AboutConst.RepositoryButtonUrl}, Mode=OneTime}"
<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}}"
Click="AboutButton_Click" />
<Button Grid.Row="0" Grid.Column="3" Margin="5" Content="{Binding Source={x:Static consts:AboutConst.PolicyButtonContent}, Mode=OneTime}" ToolTip="{Binding Source={x:Static consts:AboutConst.PolicyButtonUrl}, Mode=OneTime}"
<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}}"
Click="AboutButton_Click" />
<Button Grid.Row="1" Grid.Column="3" Margin="5" Content="{Binding Source={x:Static consts:AboutConst.AgreementButtonContent}, Mode=OneTime}" ToolTip="{Binding Source={x:Static consts:AboutConst.AgreementButtonUrl}, Mode=OneTime}"
<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}}"
Click="AboutButton_Click" />
</Grid>
</Window>

View File

@ -12,7 +12,7 @@
Style="{DynamicResource CommonWindow}" WindowStartupLocation="CenterScreen" ResizeMode="CanMinimize" SizeToContent="Height"
Loaded="MainWin_Loaded" Closing="MainWin_Closing" DragEnter="MainWin_DragEnter" Drop="MainWin_Drop" KeyDown="MainWin_KeyDown">
<Window.Width>
<Binding Source="{x:Static consts:MainConst.IsAdmin}" Mode="OneTime">
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainWinWidthConv />
</Binding.Converter>
@ -91,7 +91,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition>
<ColumnDefinition.Width>
<Binding Source="{x:Static consts:MainConst.IsAdmin}" Mode="OneTime">
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainProxyColumnWidthConv />
</Binding.Converter>
@ -100,7 +100,7 @@
</ColumnDefinition>
<ColumnDefinition>
<ColumnDefinition.Width>
<Binding Source="{x:Static consts:MainConst.IsAdmin}" Mode="OneTime">
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainProxyColumnWidthConv />
</Binding.Converter>
@ -126,7 +126,7 @@
<Button Grid.Column="1" Margin="5" d:Content="# # # #"
Click="NginxButton_Click" PreviewMouseDown="NginxButton_PreviewMouseDown">
<Button.Visibility>
<Binding Source="{x:Static consts:MainConst.IsAdmin}" Mode="OneTime">
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainAdminControlVisibilityConv />
</Binding.Converter>
@ -163,7 +163,7 @@
<Button Grid.Column="2" Margin="5" d:Content="# # # #"
Click="MihomoButton_Click" PreviewMouseDown="MihomoButton_PreviewMouseDown">
<Button.Visibility>
<Binding Source="{x:Static consts:MainConst.IsAdmin}" Mode="OneTime">
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainAdminControlVisibilityConv />
</Binding.Converter>
@ -204,7 +204,7 @@
<ColumnDefinition Width="*" />
<ColumnDefinition>
<ColumnDefinition.Width>
<Binding Source="{x:Static consts:MainConst.IsAdmin}" Mode="OneTime">
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainProxyColumnWidthConv />
</Binding.Converter>
@ -213,7 +213,7 @@
</ColumnDefinition>
<ColumnDefinition>
<ColumnDefinition.Width>
<Binding Source="{x:Static consts:MainConst.IsAdmin}" Mode="OneTime">
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainProxyColumnWidthConv />
</Binding.Converter>
@ -241,7 +241,7 @@
</MultiBinding>
</Button.IsEnabled>
<Button.Visibility>
<Binding Source="{x:Static consts:MainConst.IsAdmin}" Mode="OneTime">
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainAdminControlVisibilityConv />
</Binding.Converter>
@ -261,7 +261,7 @@
</MultiBinding>
</Button.IsEnabled>
<Button.Visibility>
<Binding Source="{x:Static consts:MainConst.IsAdmin}" Mode="OneTime">
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainAdminControlVisibilityConv />
</Binding.Converter>
@ -274,7 +274,7 @@
<ColumnDefinition Width="*" />
<ColumnDefinition>
<ColumnDefinition.Width>
<Binding Source="{x:Static consts:MainConst.IsAdmin}" Mode="OneTime">
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainProxyColumnWidthConv />
</Binding.Converter>
@ -304,7 +304,7 @@
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}" Mode="OneTime">
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainAdminControlVisibilityConv />
</Binding.Converter>
@ -317,7 +317,7 @@
<ColumnDefinition Width="*" />
<ColumnDefinition>
<ColumnDefinition.Width>
<Binding Source="{x:Static consts:MainConst.IsAdmin}" Mode="OneTime">
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainProxyColumnWidthConv />
</Binding.Converter>
@ -333,7 +333,7 @@
Grid.Column="1" Margin="5" d:Content="# # # #"
Click="NoClickButton_Click">
<Button.Visibility>
<Binding Source="{x:Static consts:MainConst.IsAdmin}" Mode="OneTime">
<Binding Source="{x:Static consts:MainConst.IsAdmin}">
<Binding.Converter>
<convs:MainAdminControlVisibilityConv />
</Binding.Converter>