Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 滚动至RichTextBox中的位置_C#_Wpf_Scroll_Scrollbar_Richtextbox - Fatal编程技术网

C# 滚动至RichTextBox中的位置

C# 滚动至RichTextBox中的位置,c#,wpf,scroll,scrollbar,richtextbox,C#,Wpf,Scroll,Scrollbar,Richtextbox,我需要帮助滚动到富文本框中突出显示的文本/字符串位置。我能够找到文本并高亮显示它,但我希望用户能够单击下一个按钮,并在每次单击后滚动到高亮显示单词第一次出现的垂直偏移位置,以此类推。任何专门用于查找高亮显示文本行的垂直偏移位置的帮助也会很有帮助。提前谢谢。我找到了一个类似问题的答案。下面是我相信能帮你解决问题的代码 TextPointer start = txtEditor.Selection.Start; FrameworkContentElement fce = (start.Parent

我需要帮助滚动到富文本框中突出显示的文本/字符串位置。我能够找到文本并高亮显示它,但我希望用户能够单击下一个按钮,并在每次单击后滚动到高亮显示单词第一次出现的垂直偏移位置,以此类推。任何专门用于查找高亮显示文本行的垂直偏移位置的帮助也会很有帮助。提前谢谢。

我找到了一个类似问题的答案。下面是我相信能帮你解决问题的代码

TextPointer start = txtEditor.Selection.Start;
FrameworkContentElement fce = (start.Parent as FrameworkContentElement);
if (fce != null)
{
    fce.BringIntoView();
}

我找到了一个类似问题的答案。下面是我相信能帮你解决问题的代码

TextPointer start = txtEditor.Selection.Start;
FrameworkContentElement fce = (start.Parent as FrameworkContentElement);
if (fce != null)
{
    fce.BringIntoView();
}

我有两个
TextPointer
s,我用它们创建了一个
TextRange
,然后在上面使用
.ApplyPropertyValue
来设置背景颜色。然后我试着

var fce = fromTextPointer as FrameworkContentElement;
if (fce != null)
    fce.BringIntoView();   // unreliable
…但这是不可靠的。我最终发现,使用我从相同的
fromTextPointer
创建的
文本范围的
.Start
,表面上是可靠的:

var fce = textRange.Start.Parent as FrameworkContentElement;
if (fce != null)
    fce.BringIntoView();    // ostensibly reliable
我猜某些动作——可能是创建
TextRange
,但更可能是调用
.ApplyPropertyValue
——触发小部件和/或TextRange对象中足够的位置规范化,
.BringIntoView()


也许这对于
选择
——就像
沃德的回答一样——是不必要的,但是我没有操纵
选择
,这个问题也没有特别提到
选择
,所以在这里发帖子以防它帮助其他可怜的灵魂避免数小时的WPF“乐趣”.

我有两个
文本指针
用来创建
文本范围
,然后使用
.ApplyPropertyValue
设置背景颜色。然后我试着

var fce = fromTextPointer as FrameworkContentElement;
if (fce != null)
    fce.BringIntoView();   // unreliable
…但这是不可靠的。我最终发现,使用我从相同的
fromTextPointer
创建的
文本范围的
.Start
,表面上是可靠的:

var fce = textRange.Start.Parent as FrameworkContentElement;
if (fce != null)
    fce.BringIntoView();    // ostensibly reliable
我猜某些动作——可能是创建
TextRange
,但更可能是调用
.ApplyPropertyValue
——触发小部件和/或TextRange对象中足够的位置规范化,
.BringIntoView()


也许这对于
选择
——就像
沃德的回答一样——是不必要的,但是我没有操纵
选择
,这个问题也没有特别提到
选择
,所以在这里发帖子以防它帮助其他可怜的灵魂避免数小时的WPF“乐趣”.

我个人不使用
RichTextBox
,因此我的经验无法帮助我。我对您进行了快速搜索,并在internet上找到了一些可以帮助您的页面,您可能需要从每篇文章中提取一些知识来构建您的功能,因此请不要期待完整的解决方案,我个人不使用
RichTextBox
,因此我的经验无法帮助我。我对您进行了快速搜索,并在internet上找到了一些可以帮助您的页面,您可能需要从每篇文章中提取一些知识来构建您的功能,因此请不要期待完整的解决方案,