mirror of
https://github.com/SpaceTimee/Sheas-Cealer.git
synced 2025-07-14 05:12:09 +08:00
1.1.3 -> 1.1.4 第62次更新
This commit is contained in:
parent
ee99628508
commit
f8501fc05b
@ -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;
|
|
||||||
}
|
}
|
@ -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>
|
@ -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>
|
||||||
|
Loading…
Reference in New Issue
Block a user