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." 的 结构 RichTextBox.Document<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. 符号 <Run> 将被删除并重新添加到单词 This之前。

  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 则 的 Run 属性设置为 Bold,但不会在文档中添加或删除任何内容,因此 Changes 为空。

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

适用于