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) 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 blackContrast = (luminance + 0.05) / 0.05;
double whiteContrast = 1.05 / (luminance + 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 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)); 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 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="*" /> <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions> </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"> Click="AboutButton_Click">
<Button.Foreground> <Button.Foreground>
<Binding Path="AccentForegroundColor"> <Binding Path="AccentForegroundColor">
@ -33,7 +33,7 @@
</Button.Foreground> </Button.Foreground>
</Button> </Button>
<Button x:Name="VersionButton" <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"> Click="AboutButton_Click">
<Button.Foreground> <Button.Foreground>
<Binding Path="AccentForegroundColor"> <Binding Path="AccentForegroundColor">
@ -48,24 +48,24 @@
<convs:AboutVersionButtonContentConv /> <convs:AboutVersionButtonContentConv />
</MultiBinding.Converter> </MultiBinding.Converter>
<Binding Source="{x:Static consts:AboutConst.VersionButtonLabelContent}" Mode="OneTime" /> <Binding Source="{x:Static consts:AboutConst.VersionButtonLabelContent}" />
<Binding Source="{x:Static consts:AboutConst.VersionButtonVersionContent}" Mode="OneTime" /> <Binding Source="{x:Static consts:AboutConst.VersionButtonVersionContent}" />
<Binding Path="IsSheasCealerUtd" /> <Binding Path="IsSheasCealerUtd" />
</MultiBinding> </MultiBinding>
</Button.Content> </Button.Content>
</Button> </Button>
<Button x:Name="EmailButton" <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" /> 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" /> 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" /> 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" /> 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" /> Click="AboutButton_Click" />
</Grid> </Grid>
</Window> </Window>

View File

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