TextChangedEventArgs.Changes 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取对象的集合,该集合包含有关已发生的更改的信息。
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>
。 实际上,由于用户的操作,发生了四个更改:
符号
<Run>
将被删除并重新添加到单词This
之前。</Run><Run>
符号将添加到单词This
之后。</Run><Run>
符号将添加到单词some
之后。该
</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 中引入。 有关详细信息,请参见版本和依赖关系。