Support light/dark style

This commit is contained in:
Jack251970 2025-06-07 10:13:45 +08:00
parent 1f61d934f8
commit 394fd1d44c
2 changed files with 369 additions and 34 deletions

View file

@ -10,7 +10,6 @@ using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using Flow.Launcher.Infrastructure.Http;
using MdXaml;
namespace Flow.Launcher
{
@ -155,7 +154,6 @@ namespace Flow.Launcher
private void MarkdownViewer_Loaded(object sender, RoutedEventArgs e)
{
MarkdownViewer.MarkdownStyle = MarkdownStyle.GithubLike;
RefreshMarkdownViewer();
}
@ -197,11 +195,13 @@ namespace Flow.Launcher
{
if (ModernWpf.ThemeManager.Current.ActualApplicationTheme == ModernWpf.ApplicationTheme.Light)
{
MarkdownViewer.MarkdownStyle = (Style)Application.Current.Resources["DocumentStyleGithubLikeLight"];
MarkdownViewer.Foreground = Brushes.Black;
MarkdownViewer.Background = Brushes.White;
}
else
{
MarkdownViewer.MarkdownStyle = (Style)Application.Current.Resources["DocumentStyleGithubLikeDark"];
MarkdownViewer.Foreground = Brushes.White;
MarkdownViewer.Background = Brushes.Black;
}

View file

@ -2408,12 +2408,15 @@
</Setter>
</Style>
<!-- Explorer Plugin Expander -->
<!-- Explorer Plugin Expander -->
<Style x:Key="ExpanderHeaderRightArrowStyle" TargetType="ToggleButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Border x:Name="RootBorder" Background="Transparent" Padding="16,15,16,15">
<Border
x:Name="RootBorder"
Padding="16 15 16 15"
Background="Transparent">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
@ -2421,41 +2424,43 @@
</Grid.ColumnDefinitions>
<ContentPresenter
Grid.Column="0"
VerticalAlignment="Center"
HorizontalAlignment="Left"
RecognizesAccessKey="True"
SnapsToDevicePixels="True"
Content="{TemplateBinding Content}"
Margin="8 0 0 0"
ContentTemplate="{TemplateBinding ContentTemplate}" />
Grid.Column="0"
Margin="8 0 0 0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
RecognizesAccessKey="True"
SnapsToDevicePixels="True" />
<Grid Grid.Column="1"
Width="20" Height="20"
Margin="8 0 4 0"
VerticalAlignment="Center"
HorizontalAlignment="Right"
Background="Transparent"
RenderTransformOrigin="0.5,0.5"
x:Name="ChevronGrid">
<Grid
x:Name="ChevronGrid"
Grid.Column="1"
Width="20"
Height="20"
Margin="8 0 4 0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Background="Transparent"
RenderTransformOrigin="0.5,0.5">
<Grid.RenderTransform>
<RotateTransform Angle="0"/>
<RotateTransform Angle="0" />
</Grid.RenderTransform>
<Ellipse
x:Name="circle"
Width="19"
Height="19"
Stroke="Transparent"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
x:Name="circle"
Width="19"
Height="19"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Stroke="Transparent" />
<Path
x:Name="arrow"
Data="M 1,1.5 L 4.5,5 L 8,1.5"
Stroke="#666"
StrokeThickness="1"
SnapsToDevicePixels="False"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
x:Name="arrow"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="M 1,1.5 L 4.5,5 L 8,1.5"
SnapsToDevicePixels="False"
Stroke="#666"
StrokeThickness="1" />
</Grid>
</Grid>
</Border>
@ -5754,4 +5759,334 @@
<Setter Property="Margin" Value="0 2 0 0" />
<Setter Property="Foreground" Value="{DynamicResource Color04B}" />
</Style>
<!-- Release Notes -->
<Style x:Key="DocumentStyleGithubLikeLight" TargetType="FlowDocument">
<Setter Property="FontFamily" Value="Calibri" />
<Setter Property="TextAlignment" Value="Left" />
<Setter Property="PagePadding" Value="0" />
<Setter Property="FontSize" Value="14" />
<Style.Resources>
<Style TargetType="Section">
<Style.Triggers>
<Trigger Property="Tag" Value="Blockquote">
<Setter Property="Padding" Value="10 5" />
<Setter Property="BorderBrush" Value="#DEDEDE" />
<Setter Property="BorderThickness" Value="5 0 0 0" />
</Trigger>
</Style.Triggers>
</Style>
<Style xmlns:avalonEdit="http://icsharpcode.net/sharpdevelop/avalonedit" TargetType="avalonEdit:TextEditor">
<Setter Property="Background" Value="#EEEEEE" />
<Setter Property="HorizontalScrollBarVisibility" Value="Auto" />
<Setter Property="VerticalScrollBarVisibility" Value="Auto" />
<Setter Property="Margin" Value="2 0 2 0" />
<Setter Property="Padding" Value="3" />
</Style>
<Style TargetType="Paragraph">
<Setter Property="Margin" Value="0 7 0 0" />
<Style.Triggers>
<Trigger Property="Tag" Value="Heading1">
<Setter Property="Margin" Value="0 0 15 0" />
<Setter Property="Foreground" Value="#ff000000" />
<Setter Property="FontSize" Value="28" />
<Setter Property="FontWeight" Value="UltraBold" />
</Trigger>
<Trigger Property="Tag" Value="Heading2">
<Setter Property="Margin" Value="0 0 15 0" />
<Setter Property="Foreground" Value="#ff000000" />
<Setter Property="FontSize" Value="21" />
<Setter Property="FontWeight" Value="Bold" />
</Trigger>
<Trigger Property="Tag" Value="Heading3">
<Setter Property="Margin" Value="0 0 10 0" />
<Setter Property="Foreground" Value="#ff000000" />
<Setter Property="FontSize" Value="17.5" />
<Setter Property="FontWeight" Value="Bold" />
</Trigger>
<Trigger Property="Tag" Value="Heading4">
<Setter Property="Margin" Value="0 0 5 0" />
<Setter Property="Foreground" Value="#ff000000" />
<Setter Property="FontSize" Value="14" />
<Setter Property="FontWeight" Value="Bold" />
</Trigger>
<Trigger Property="Tag" Value="CodeBlock">
<Setter Property="FontFamily" Value="Courier New" />
<Setter Property="FontSize" Value="11.9" />
<Setter Property="Background" Value="#12181F25" />
<Setter Property="Padding" Value="20 10" />
</Trigger>
<Trigger Property="Tag" Value="Note">
<Setter Property="Margin" Value="5 0 5 0" />
<Setter Property="Padding" Value="10 5" />
<Setter Property="BorderBrush" Value="#DEDEDE" />
<Setter Property="BorderThickness" Value="3 3 3 3" />
<Setter Property="Background" Value="#FAFAFA" />
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="Run">
<Style.Triggers>
<Trigger Property="Tag" Value="CodeSpan">
<Setter Property="FontFamily" Value="Courier New" />
<Setter Property="FontSize" Value="11.9" />
<Setter Property="Background" Value="#12181F25" />
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="Span">
<Style.Triggers>
<Trigger Property="Tag" Value="CodeSpan">
<Setter Property="FontFamily" Value="Courier New" />
<Setter Property="FontSize" Value="11.9" />
<Setter Property="Background" Value="#12181F25" />
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="Hyperlink">
<Setter Property="TextDecorations" Value="None" />
</Style>
<Style TargetType="Image">
<Setter Property="RenderOptions.BitmapScalingMode" Value="NearestNeighbor" />
<Style.Triggers>
<Trigger Property="Tag" Value="imageright">
<Setter Property="Margin" Value="20 0 0 0" />
</Trigger>
</Style.Triggers>
</Style>
<!--
The Table's style don't seem to support border-collapse.
By making the ruled line width 0.5 and applying it to cell and table,
it looks like the ruled lines are not doubled.
-->
<Style TargetType="Table">
<Setter Property="CellSpacing" Value="0" />
<Setter Property="BorderThickness" Value="0.5" />
<Setter Property="BorderBrush" Value="#DFE2E5" />
<Style.Resources>
<Style TargetType="TableCell">
<Setter Property="BorderThickness" Value="0.5" />
<Setter Property="BorderBrush" Value="#DFE2E5" />
<Setter Property="Padding" Value="13 6" />
</Style>
</Style.Resources>
</Style>
<Style TargetType="TableRowGroup">
<Style.Triggers>
<Trigger Property="Tag" Value="TableHeader">
<Setter Property="FontWeight" Value="DemiBold" />
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="Background" Value="#FFFFFF" />
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="TableRow">
<Style.Triggers>
<Trigger Property="Tag" Value="EvenTableRow">
<Setter Property="Background" Value="#F6F8FA" />
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="BlockUIContainer">
<Style.Triggers>
<Trigger Property="Tag" Value="RuleSingle">
<Setter Property="Margin" Value="0 3" />
</Trigger>
<Trigger Property="Tag" Value="RuleDouble">
<Setter Property="Margin" Value="0 3" />
</Trigger>
<Trigger Property="Tag" Value="RuleBold">
<Setter Property="Margin" Value="0 3" />
</Trigger>
<Trigger Property="Tag" Value="RuleBoldWithSingle">
<Setter Property="Margin" Value="0 3" />
</Trigger>
</Style.Triggers>
</Style>
</Style.Resources>
</Style>
<Style x:Key="DocumentStyleGithubLikeDark" TargetType="FlowDocument">
<Setter Property="FontFamily" Value="Calibri" />
<Setter Property="TextAlignment" Value="Left" />
<Setter Property="PagePadding" Value="0" />
<Setter Property="FontSize" Value="14" />
<Style.Resources>
<Style TargetType="Section">
<Style.Triggers>
<Trigger Property="Tag" Value="Blockquote">
<Setter Property="Padding" Value="10 5" />
<Setter Property="BorderBrush" Value="#212121" />
<Setter Property="BorderThickness" Value="5 0 0 0" />
</Trigger>
</Style.Triggers>
</Style>
<Style xmlns:avalonEdit="http://icsharpcode.net/sharpdevelop/avalonedit" TargetType="avalonEdit:TextEditor">
<Setter Property="Background" Value="#111111" />
<Setter Property="HorizontalScrollBarVisibility" Value="Auto" />
<Setter Property="VerticalScrollBarVisibility" Value="Auto" />
<Setter Property="Margin" Value="2 0 2 0" />
<Setter Property="Padding" Value="3" />
</Style>
<Style TargetType="Paragraph">
<Setter Property="Margin" Value="0 7 0 0" />
<Style.Triggers>
<Trigger Property="Tag" Value="Heading1">
<Setter Property="Margin" Value="0 0 15 0" />
<Setter Property="Foreground" Value="#FFFFFFFF" />
<Setter Property="FontSize" Value="28" />
<Setter Property="FontWeight" Value="UltraBold" />
</Trigger>
<Trigger Property="Tag" Value="Heading2">
<Setter Property="Margin" Value="0 0 15 0" />
<Setter Property="Foreground" Value="#FFFFFFFF" />
<Setter Property="FontSize" Value="21" />
<Setter Property="FontWeight" Value="Bold" />
</Trigger>
<Trigger Property="Tag" Value="Heading3">
<Setter Property="Margin" Value="0 0 10 0" />
<Setter Property="Foreground" Value="#FFFFFFFF" />
<Setter Property="FontSize" Value="17.5" />
<Setter Property="FontWeight" Value="Bold" />
</Trigger>
<Trigger Property="Tag" Value="Heading4">
<Setter Property="Margin" Value="0 0 5 0" />
<Setter Property="Foreground" Value="#FFFFFFFF" />
<Setter Property="FontSize" Value="14" />
<Setter Property="FontWeight" Value="Bold" />
</Trigger>
<Trigger Property="Tag" Value="CodeBlock">
<Setter Property="FontFamily" Value="Courier New" />
<Setter Property="FontSize" Value="11.9" />
<Setter Property="Background" Value="#E0E7DFDA" />
<Setter Property="Padding" Value="20 10" />
</Trigger>
<Trigger Property="Tag" Value="Note">
<Setter Property="Margin" Value="5 0 5 0" />
<Setter Property="Padding" Value="10 5" />
<Setter Property="BorderBrush" Value="#212121" />
<Setter Property="BorderThickness" Value="3 3 3 3" />
<Setter Property="Background" Value="#050505" />
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="Run">
<Style.Triggers>
<Trigger Property="Tag" Value="CodeSpan">
<Setter Property="FontFamily" Value="Courier New" />
<Setter Property="FontSize" Value="11.9" />
<Setter Property="Background" Value="#E0E7DFDA" />
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="Span">
<Style.Triggers>
<Trigger Property="Tag" Value="CodeSpan">
<Setter Property="FontFamily" Value="Courier New" />
<Setter Property="FontSize" Value="11.9" />
<Setter Property="Background" Value="#E0E7DFDA" />
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="Hyperlink">
<Setter Property="TextDecorations" Value="None" />
</Style>
<Style TargetType="Image">
<Setter Property="RenderOptions.BitmapScalingMode" Value="NearestNeighbor" />
<Style.Triggers>
<Trigger Property="Tag" Value="imageright">
<Setter Property="Margin" Value="20 0 0 0" />
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="Table">
<Setter Property="CellSpacing" Value="0" />
<Setter Property="BorderThickness" Value="0.5" />
<Setter Property="BorderBrush" Value="#202020" />
<Style.Resources>
<Style TargetType="TableCell">
<Setter Property="BorderThickness" Value="0.5" />
<Setter Property="BorderBrush" Value="#202020" />
<Setter Property="Padding" Value="13 6" />
</Style>
</Style.Resources>
</Style>
<Style TargetType="TableRowGroup">
<Style.Triggers>
<Trigger Property="Tag" Value="TableHeader">
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="Background" Value="#000000" />
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="TableRow">
<Style.Triggers>
<Trigger Property="Tag" Value="EvenTableRow">
<Setter Property="Background" Value="#090708" />
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="BlockUIContainer">
<Style.Triggers>
<Trigger Property="Tag" Value="RuleSingle">
<Setter Property="Margin" Value="0 3" />
</Trigger>
<Trigger Property="Tag" Value="RuleDouble">
<Setter Property="Margin" Value="0 3" />
</Trigger>
<Trigger Property="Tag" Value="RuleBold">
<Setter Property="Margin" Value="0 3" />
</Trigger>
<Trigger Property="Tag" Value="RuleBoldWithSingle">
<Setter Property="Margin" Value="0 3" />
</Trigger>
</Style.Triggers>
</Style>
</Style.Resources>
</Style>
</ResourceDictionary>