我在wpf工作,我有一个带有一些内容的richtextbox。如果内容超出了richtextbox我想要隐藏底部边框。如果在richtextbox中的内容我想显示底部边框。现在我正在使用下面的代码,用于在richtextbox中查看超出的内容。
FrameworkContentElement fce = (startPos.Parent as FrameworkContentElement);
if (fce != null)
{
fce.BringIntoView();
}
但我希望显示底部边框,一旦显示在该richtextbox中的最后一个单词。如何实现这一目标?
注意:我已经知道如何动态显示底部边框。但我想知道最后一个单词是否显示在richtextbox中?
此致 阿琼
答案 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}}
希望这有帮助。