mirror of
https://github.com/Flow-Launcher/Flow.Launcher.git
synced 2026-03-11 08:54:32 +00:00
Support smooth scroll
This commit is contained in:
parent
a9eb17ee50
commit
4436a1efee
2 changed files with 68 additions and 30 deletions
|
|
@ -166,22 +166,32 @@
|
||||||
<cc:HyperLink x:Name="SeeMore" Text="{DynamicResource seeMoreReleaseNotes}" />
|
<cc:HyperLink x:Name="SeeMore" Text="{DynamicResource seeMoreReleaseNotes}" />
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<mdxam:MarkdownScrollViewer
|
<!-- Do not use scroll function of MarkdownViewer because it does not support smooth scroll -->
|
||||||
x:Name="MarkdownViewer"
|
<ScrollViewer
|
||||||
|
x:Name="MarkdownScrollViewer"
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
Grid.ColumnSpan="5"
|
Grid.ColumnSpan="5"
|
||||||
Width="500"
|
Width="500"
|
||||||
Height="500"
|
Height="500">
|
||||||
Margin="15 0 20 0"
|
<mdxam:MarkdownScrollViewer
|
||||||
ClickAction="SafetyDisplayWithRelativePath"
|
x:Name="MarkdownViewer"
|
||||||
Loaded="MarkdownViewer_Loaded"
|
Margin="15 0 20 0"
|
||||||
Plugins="{StaticResource MdXamlPlugins}"
|
HorizontalAlignment="Stretch"
|
||||||
Visibility="Collapsed" />
|
VerticalAlignment="Stretch"
|
||||||
|
ClickAction="SafetyDisplayWithRelativePath"
|
||||||
|
HorizontalScrollBarVisibility="Disabled"
|
||||||
|
Loaded="MarkdownViewer_Loaded"
|
||||||
|
MouseWheel="MarkdownViewer_MouseWheel"
|
||||||
|
Plugins="{StaticResource MdXamlPlugins}"
|
||||||
|
PreviewMouseWheel="MarkdownViewer_PreviewMouseWheel"
|
||||||
|
VerticalScrollBarVisibility="Disabled"
|
||||||
|
Visibility="Collapsed" />
|
||||||
|
</ScrollViewer>
|
||||||
|
|
||||||
<!-- This Grid is for display progress ring and refresh button. -->
|
<!-- This Grid is for display progress ring and refresh button. -->
|
||||||
<!-- And it is also for changing the size of the MarkdownViewer. -->
|
<!-- And it is also for changing the size of the MarkdownViewer. -->
|
||||||
<!-- Because VerticalAlignment="Stretch" can cause size issue with MarkdownViewer. -->
|
<!-- Because VerticalAlignment="Stretch" can cause size issue with MarkdownScrollViewer. -->
|
||||||
<Grid
|
<Grid
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,25 @@ namespace Flow.Launcher
|
||||||
ModernWpf.ThemeManager.Current.ActualApplicationThemeChanged += ThemeManager_ActualApplicationThemeChanged;
|
ModernWpf.ThemeManager.Current.ActualApplicationThemeChanged += ThemeManager_ActualApplicationThemeChanged;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ThemeManager_ActualApplicationThemeChanged(ModernWpf.ThemeManager sender, object args)
|
||||||
|
{
|
||||||
|
Application.Current.Dispatcher.Invoke(() =>
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
#region Window Events
|
#region Window Events
|
||||||
|
|
||||||
private void Window_Loaded(object sender, RoutedEventArgs e)
|
private void Window_Loaded(object sender, RoutedEventArgs e)
|
||||||
|
|
@ -162,6 +181,8 @@ namespace Flow.Launcher
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Control Events
|
||||||
|
|
||||||
private void MarkdownViewer_Loaded(object sender, RoutedEventArgs e)
|
private void MarkdownViewer_Loaded(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
RefreshMarkdownViewer();
|
RefreshMarkdownViewer();
|
||||||
|
|
@ -196,29 +217,36 @@ namespace Flow.Launcher
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ThemeManager_ActualApplicationThemeChanged(ModernWpf.ThemeManager sender, object args)
|
|
||||||
{
|
|
||||||
Application.Current.Dispatcher.Invoke(() =>
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Grid_SizeChanged(object sender, SizeChangedEventArgs e)
|
private void Grid_SizeChanged(object sender, SizeChangedEventArgs e)
|
||||||
{
|
{
|
||||||
MarkdownViewer.Height = e.NewSize.Height;
|
MarkdownScrollViewer.Height = e.NewSize.Height;
|
||||||
MarkdownViewer.Width = e.NewSize.Width;
|
MarkdownScrollViewer.Width = e.NewSize.Width;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void MarkdownViewer_MouseWheel(object sender, MouseWheelEventArgs e)
|
||||||
|
{
|
||||||
|
RaiseMouseWheelEvent(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MarkdownViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
|
||||||
|
{
|
||||||
|
RaiseMouseWheelEvent(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RaiseMouseWheelEvent(object sender, MouseWheelEventArgs e)
|
||||||
|
{
|
||||||
|
e.Handled = true; // Prevent the inner control from handling the event
|
||||||
|
|
||||||
|
var eventArg = new MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta)
|
||||||
|
{
|
||||||
|
RoutedEvent = UIElement.MouseWheelEvent,
|
||||||
|
Source = sender
|
||||||
|
};
|
||||||
|
|
||||||
|
// Raise the event on the parent ScrollViewer
|
||||||
|
MarkdownScrollViewer.RaiseEvent(eventArg);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue