我正在尝试使用户可以在富文本框外部按住 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);
}
}
}
现在它似乎可以工作,直到我滚动到底部,然后我必须点击富文本框的一半才能使其向上滚动。我究竟做错了什么?