通过


TextChangedEventArgs.Changes 属性

定义

获取包含所发生更改的信息的对象集合。

public:
 property System::Collections::Generic::ICollection<System::Windows::Controls::TextChange ^> ^ Changes { System::Collections::Generic::ICollection<System::Windows::Controls::TextChange ^> ^ get(); };
public System.Collections.Generic.ICollection<System.Windows.Controls.TextChange> Changes { get; }
member this.Changes : System.Collections.Generic.ICollection<System.Windows.Controls.TextChange>
Public ReadOnly Property Changes As ICollection(Of TextChange)

属性值

一个对象集合,其中包含有关所发生更改的信息。

注解

控件的每个连续更改都有一个 TextChange 对象。 当更改需要更改基础文档的结构时,在事件发生期间 TextChanged ,可能会发生多个连续更改。

例如,假设包含 RichTextBox 字符串 "This is some text." The structure of the RichTextBox.Document structure <Paragraph><Run>This is some text.</Run></Paragraph>. 如果用户将单词 "is some"加粗,则基础 FlowDocument 更改 <Paragraph><Run>This </Run><Run FontWeight="Bold">is some</Run><Run> text.</Run></Paragraph>的结构。 实际上,由于用户的操作,发生了四项更改:

  1. 在单词This之前删除并重新添加符号<Run>

  2. </Run><Run>符号在单词This后面添加。

  3. </Run><Run>符号在单词some后面添加。

  4. </Run> 符号将被删除,并在单词 Text后重新添加。

一般情况下,以下内容始终为 true:

  • 发生的更改导致文档处于有效状态。

  • 集合是连续排序的,与控件中发生更改的位置相关。 例如, TextChange 表示位置 2 处更改的对象位于表示位置 10 处更改的对象之前 TextChange

  • TextChange 个对象不表示重叠区域。 Offset加上一个TextChange对象的值AddedLength始终小于或等于集合中下一TextChange个对象的值Offset。 同样,Offset加上一个TextChange对象的值RemovedLength始终小于或等于集合中下一TextChange个对象的值Offset

  • 该集合反映发生的任何更改,即使似乎没有净更改。 在前面的示例中,第一个或第四个更改都不会产生净更改,因为每个更改都只是删除并重新添加和</Run>符号<Run>。 但符号实际上已被删除并添加,因此它们包含在集合中。

TextChanged如果由于属性更改而发生事件,Changes则为空集合。 在前面的示例中,如果用户将整个字符串加粗,则FontWeight设置为该属性,但文档中不会添加或删除任何内容RunBold,因此Changes为空。

Changes 在 .NET Framework 版本 3.5 中引入。 有关详细信息,请参阅 版本和依赖项

适用于