语音启用RichTextBox

时间:2014-08-05 11:21:46

标签: c# wpf

我正在尝试创建一个具有richtextbox的WPF应用程序,该文本框接受来自用户的听写作为其输入。

我想将此代码用于SpeechRecognitionEngine类对象的SpeechRecognized事件。

private void speechRecognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
  {
      e.Result.Text = rtb.Text; //rtb is an object of the RichTextBox class
  }

问题是RichTextBox类没有Text属性。有没有办法解决这个问题?提前致谢

3 个答案:

答案 0 :(得分:0)

可以通过Document属性设置RichTextBox内容。您可以在MSDN

上找到更多详细信息

以下是上面提供的链接示例。它为它创建一个新文档和一个段落,然后将文档分配给RichTextBox:

// Create a simple FlowDocument to serve as content.
FlowDocument flowDoc = new FlowDocument(new Paragraph(new Run("Simple FlowDocument")));
// Create an empty, default RichTextBox.
RichTextBox rtb = new RichTextBox();
// This call sets the contents of the RichTextBox to the specified FlowDocument.
rtb.Document = flowDoc;
// This call gets a FlowDocument representing the contents of the RichTextBox.
FlowDocument rtbContents = rtb.Document;

答案 1 :(得分:0)

试试这个:

 private void speechRecognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
  {
       rtb.AppendText(e.Result.Text);
  }

答案 2 :(得分:0)

这是一个记录良好的问题,并且有许多不同的解决方案。您可以在Stack Overflow上的RichTextBox (WPF) does not have string property “Text”问题的答案中找到大量可能的解决方案。

但是,我首选的方法是为Text类声明RichTextBox附加属性。请参阅MSDN上的Attached Properties Overview页面以了解有关附加属性的更多信息。您可以在C#门徒网站RichTextBox Text property where are you hiding?教程中的Text课程的RichTextBox附加属性中找到要使用的代码。