ユーザーがリッチテキストボックスの外側をctrlキーを押しながらクリックして、リッチテキストボックスの上部に対するマウスのy.positionに基づいて、リッチテキストボックスの最大スクロール量のパーセンテージまでスクロールできるようにしようとしています。現在使用しているコードは次のとおりです。
private void MainWindow_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (Keyboard.Modifiers == ModifierKeys.Control)
{
if (!richTextBox1.IsMouseOver)
{
double d = (e.GetPosition(richTextBox1).Y / richTextBox1.ActualHeight);
if (d > 1) { d = 1; }
d = (richtextboxScrollViewer.ExtentHeight * d);
richtextboxScrollViewer.ScrollToVerticalOffset(d);
}
}
}
今のところ、一番下までスクロールするまではうまくいくようですが、リッチテキストボックスを上にスクロールするには、リッチテキストボックスの途中までクリックする必要があります。私は何を間違っていますか?