- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
需要用五种颜色高亮文档RichEditBox中的一个子字符串。为此我写了一个方法:
private async Task ChangeTextColor(string text, Color color)
{
string textStr;
bool theEnd = false;
int startTextPos = 0;
myRichEdit.Document.GetText(TextGetOptions.None, out textStr);
while (theEnd == false)
{
myRichEdit.Document.GetRange(startTextPos, textStr.Length).GetText(TextGetOptions.None, out textStr);
var isFinded = myRichEdit.Document.GetRange(startTextPos, textStr.Length).FindText(text, textStr.Length, FindOptions.None);
if (isFinded != 0)
{
string textStr2;
textStr2 = myRichEdit.Document.Selection.Text;
var dialog = new MessageDialog(textStr2);
await dialog.ShowAsync();
myRichEdit.Document.Selection.CharacterFormat.BackgroundColor = color;
startTextPos = myRichEdit.Document.Selection.EndPosition;
myRichEdit.Document.ApplyDisplayUpdates();
}
else
{
theEnd = true;
}
}
}
在调试器中,您可以看到有一个子字符串,并且 isFinded 等于找到的子字符串中符号(或符号)的数量。这意味着片段已找到,并且根据方法 FindText 的描述判断应该突出显示,但事实并非如此。在 textStr2 中返回一个空行,相应地,颜色不变。我无法确定错误的原因。
最佳答案
您发布的代码没有设置选择,因此 myRichEdit.Document.Selection
为空。您可以使用 ITextRange.SetRange
设置选择。你可以使用 ITextRange.FindText method
在选择中查找字符串。
例如:
private void ChangeTextColor(string text, Color color)
{
string textStr;
myRichEdit.Document.GetText(TextGetOptions.None, out textStr);
var myRichEditLength = textStr.Length;
myRichEdit.Document.Selection.SetRange(0, myRichEditLength);
int i = 1;
while (i > 0)
{
i = myRichEdit.Document.Selection.FindText(text, myRichEditLength, FindOptions.Case);
ITextSelection selectedText = myRichEdit.Document.Selection;
if (selectedText != null)
{
selectedText.CharacterFormat.BackgroundColor = color;
}
}
}
关于c# - 在 RichEditBox 中突出显示单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35634345/
我在 Windows 8 中使用新的 RichEditBox 并尝试选择文本范围并更改文本颜色。下面的代码将添加下划线并更改所选文本的背景,但 ForegroundColor 不会更改,文本只是保持黑
我试过下面的代码,但它抛出异常System.ArgumentException,异常信息是: Value does not fall within the expected range. public
我正在构建 Windows Phone 8.1/Windows 8.1 应用程序 (WinRT),并且我正在使用 RichEditBox 控件。每次我向其中添加文本时,光标都会转到文本的开头,但我找不
需要用五种颜色高亮文档RichEditBox中的一个子字符串。为此我写了一个方法: private async Task ChangeTextColor(string text, Color colo
有没有办法禁用或覆盖 WinRT RichEditBox 控件上的键盘快捷键?我希望能够在您按下 Ctrl-B 和 Ctrl-I 时禁用粗体和斜体格式。 我避免使用常规的纯文本框,因为我想使用 Ric
我将 URL 中的图像插入到 RichEditBox 中,如下所示: // Create a MemoryStream from uri, and insert into richeditbox Sy
我将 RichEditBox 用于富文本编辑器:当用户在 richEditBox 控件中键入文本时,我对文本中的不同关键字使用不同的颜色。 在进行更改之前,我保存当前选择位置: ITextSelect
我正在开发一个 UWP 应用程序,我正在使用 RichEditBox控件,我在使用撤消功能时遇到了一些问题。 我知道我可以使用 ITextDocument 中的 BeginUndoGroup 方法Ri
我正在尝试在 ;RichEditBox 中获取和设置富文本,但每次执行 GetText 然后执行 SetText 时,都会添加一个额外的回车符。这是一个 super 简单的示例,其中包含一个按钮,该按
我正在尝试在 ;RichEditBox 中获取和设置富文本,但每次执行 GetText 然后执行 SetText 时,都会添加一个额外的回车符。这是一个 super 简单的示例,其中包含一个按钮,该按
我想知道是否可以在 UWP C# 中显示 RichEditBox 的行号(在单独的列中) ,或者如果有其他方法可以得到它。我正在寻找这个问题的解决方案......我觉得很奇怪,没有关于它的文档:我只需
所以我只是想弄清楚如何从我的应用程序的 View 模型中访问 RichEditBox 控件。如果不使用反模式,这是否可能? 我知道在 View Model 中访问控件的唯一方法是将其传递给 View
我想用 Open File Picker 打开一个文本文件并在 RichEditBox 中显示,但是当我选择文件并按下 Ok 时,Visual Studio 显示“Access Denied”,我想知
搜索了很长时间以将一些 RTF 文本绑定(bind)到 Windows 应用商店应用程序上的 RichEditBox 控件。即使它应该在 TwoMay 绑定(bind)模式下运行。... 最佳答案 .
C# 中的RichEditBox 控件(我使用的是VS 2005)性能不佳。我将一个 2.5 MB 的 RTF 文件和 45.000 行彩色文本加载到控件中,这需要 4 分钟。我将相同的 RTF 加载
我想创建一个支持 Inking Like OneNote 的 RichEditBox。它应该具有两者的功能,例如文本格式和墨迹编辑。 注:我已申请 UWPCommunityToolkit为此创建一个新
我有一个带有 RichEditBox 的 Windows 应用商店应用程序(编辑)和一个 Grid (边注)。 我需要始终匹配两个元素的垂直滚动位置。这样做的目的是允许用户在文档的页边空白处添加注释。
我在 UWP 项目中有一个 RichEditBox。 是否可以使用所有新行提取用户编写的文本? 我找不到像 RichEditBox.Text 这样的属性。 对于我的目的,这可能是错误的工具吗? 最佳答
使用 UWP 中的普通 TextBox,您可以数据绑定(bind)到 Text 属性,并轻松地从 ViewModel 获取或设置值。 RichEditBox虽然没有可绑定(bind)数据的 Text
这是我正在处理的对象: class TopNews { public string Id { get; set; } public string Title { get; set; }
我是一名优秀的程序员,十分优秀!