gpt4 book ai didi

c# - 文本框 SpellCheck.IsEnabled - 如何计数

转载 作者:太空宇宙 更新时间:2023-11-03 10:39:54 24 4
gpt4 key购买 nike

我的文本框需要计算文本框中出现的拼写错误的数量。

我的研究告诉我如何解决拼写错误,使用

<TextBox Text="{Binding Content}" SpellCheck.IsEnabled="True" Language="en-GB" />

我对不能将 IsReadOnly 设置为 true 感到有点恼火,但我想我不得不忍受它。

我找不到的是如何知道文本框中有多少拼写问题/错误。我能找到的就是http://msdn.microsoft.com/en-us/library/system.windows.controls.spellcheck%28v=vs.110%29.aspx这并没有说它确实如此,但我并没有失去希望!

我尝试添加

        TextBox tx = new TextBox();
tx.SpellCheck.IsEnabled = true;
tx.Text = "saf and tre";

var split = tx.Text.Split(' ');
var errors = 0;
foreach (var s in split)
{
var tempTb = new TextBox();
tempTb.Text = s;

SpellingError e = tempTb.GetSpellingError(0); // always null
var a = tempTb.GetSpellingErrorLength(0);
var b = tempTb.GetSpellingError(0);
var c = tempTb.GetSpellingErrorStart(0);

if ( tempTb.GetSpellingErrorLength(0) >= 0)
errors++;
}

如果我更新代码

            SpellingError e = tempTb.GetSpellingError(0); // always null

            SpellingError e = tx.GetSpellingError(0); // not null

然后它会提供建议,然后告诉我这是错误的(我可以进行计数)。

为了解决我必须要做的问题

        TextBox tx = new TextBox();
tx.SpellCheck.IsEnabled = true;
tx.Text = "saf many tre further more i sense taht nothing is what is";

var split = tx.Text.Split(' ');
var errors = 0;
var start = 0;
foreach (var s in split)
{
var tempTb = new TextBox();
tempTb.Text = s;

SpellingError f = tx.GetSpellingError(start);

start += s.Length + 1;

if (f!=null)
errors++;
}

为什么它对 tempTb 不起作用?

最佳答案

从我的调试看来,@EdSF 是正确的,必须为临时 TextBox 设置 SpellCheck.IsEnabled

用于重现此内容的代码:

void initTest()
{
TextBox tx = new TextBox();
tx.SpellCheck.IsEnabled = true;
tx.Text = "saf and tre";

var split = tx.Text.Split(' ');
var errors = 0;
foreach (var s in split)
{
var tempTb = new TextBox();
tempTb.SpellCheck.IsEnabled = true; // Added this line
tempTb.Text = s;

SpellingError e = tempTb.GetSpellingError(0); // no longer always null
var a = tempTb.GetSpellingErrorLength(0);
var b = tempTb.GetSpellingError(0);
var c = tempTb.GetSpellingErrorStart(0);

//if (tempTb.GetSpellingErrorLength(0) >= 0) //doesn't appear to be correct
if (e != null)
{
errors++;
}
}
}

关于c# - 文本框 SpellCheck.IsEnabled - 如何计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25795507/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com