diff --git a/src/Markdig.Wpf/MarkdownViewer.cs b/src/Markdig.Wpf/MarkdownViewer.cs index 5059503..826bd96 100644 --- a/src/Markdig.Wpf/MarkdownViewer.cs +++ b/src/Markdig.Wpf/MarkdownViewer.cs @@ -5,6 +5,7 @@ using System.Windows; using System.Windows.Controls; using System.Windows.Documents; +using System.Windows.Input; namespace Markdig.Wpf { @@ -35,11 +36,27 @@ public class MarkdownViewer : Control public static readonly DependencyProperty PipelineProperty = DependencyProperty.Register(nameof(Pipeline), typeof(MarkdownPipeline), typeof(MarkdownViewer), new FrameworkPropertyMetadata(PipelineChanged)); + /// + /// Defines the property. + /// + public static readonly DependencyProperty HandleVerticalScrollEventsProperty = + DependencyProperty.Register(nameof(HandleVerticalScrollEvents), typeof(bool), typeof(MarkdownViewer)); + static MarkdownViewer() { DefaultStyleKeyProperty.OverrideMetadata(typeof(MarkdownViewer), new FrameworkPropertyMetadata(typeof(MarkdownViewer))); } + public MarkdownViewer() + { + AddHandler(MouseWheelEvent, new MouseWheelEventHandler(OnVerticalScrollEventHandled), true); + } + + private void OnVerticalScrollEventHandled(object sender, MouseWheelEventArgs e) + { + e.Handled = HandleVerticalScrollEvents; + } + /// /// Gets the flow document to display. /// @@ -67,6 +84,15 @@ public MarkdownPipeline Pipeline set { SetValue(PipelineProperty, value); } } + /// + /// Gets or sets the handling of the vertical scroll events. + /// + public bool HandleVerticalScrollEvents + { + get { return (bool)GetValue(HandleVerticalScrollEventsProperty); } + set { SetValue(HandleVerticalScrollEventsProperty, value); } + } + private static void MarkdownChanged(object sender, DependencyPropertyChangedEventArgs e) { var control = (MarkdownViewer)sender;