如何在WPF中获取richtextbox的最后一个单词是否为BringIntoView(显示)?

时间:2015-12-08 13:22:01

标签: c# wpf richtextbox frameworkelement

我在wpf工作,我有一个带有一些内容的richtextbox。如果内容超出了richtextbox我想要隐藏底部边框。如果在richtextbox中的内容我想显示底部边框。现在我正在使用下面的代码,用于在richtextbox中查看超出的内容。

 FrameworkContentElement fce = (startPos.Parent as FrameworkContentElement);
            if (fce != null)
            {
                fce.BringIntoView();
            }

但我希望显示底部边框,一旦显示在该richtextbox中的最后一个单词。如何实现这一目标?

注意:我已经知道如何动态显示底部边框。但我想知道最后一个单词是否显示在richtextbox中?

此致 阿琼

1 个答案:

答案 0 :(得分:1)

我可以为您提供一种方法来检查角色的左上角是否可见。 使用以下内容创建一个类库public class ToolsRtb { public static bool PositionVisibleIs(RichTextBox rtb, TextPointer pos) { // Rectangle around the character to check Rect r = pos.GetCharacterRect(LogicalDirection.Forward); // Upper left corner of the rectangle ... Point upperLeftCorner = r.Location; HitTestResult result = VisualTreeHelper.HitTest(rtb, upperLeftCorner); // ... is visible? if (result != null) return true; else return false; } }

PositionVisibleIs(...)

请注意RichTextBox是一种静态方法,并不专用于特定对象。 在包含// Is the last character of the current document visible? if (ToolsRtb.PositionVisibleIs(rtb, rtb.Document.ContentEnd) == true) { ... } 的窗口的代码隐藏文件中,使用如下方法:

{{1}}

希望这有帮助。