Для этого вам нужно переопределить метод OnMouseWheel FlowDocumentPageViewer.Ниже приведен оригинальный код:
protected override void OnMouseWheel(MouseWheelEventArgs e)
{
if (e.Delta != 0)
{
if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
{
if (e.Delta > 0)
{
this.IncreaseZoom();
}
else
{
this.DecreaseZoom();
}
}
else if (e.Delta > 0)
{
base.PreviousPage();
}
else
{
base.NextPage();
}
e.Handled = false;
}
if (!e.Handled)
{
base.OnMouseWheel(e);
}
}
В вашем коде вы должны сделать следующее:
public class MyPageViewer : FlowDocumentPageViewer
{
protected override void OnMouseWheel(MouseWheelEventArgs e)
{
if (scroll_within_page_applicable())
{
scroll_within_page();
}
else
{
base.OnMouseWheel(e);
}
}
}