Share via


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 個 物件不代表重迭的區域。 的值加上一個 物件的值 OffsetAddedLength 一律小於或等於集合中下一 TextChangeTextChange 物件的值 Offset 。 同樣地,的值加上一個物件的值 Offset 一律小於或等於集合中下一個 TextChangeTextChange 物件的值 OffsetRemovedLength

  • 集合會反映發生的任何變更,即使似乎沒有淨變更也一樣。 在上述範例中,第一個或第四項變更都不會產生淨變更,因為每個變更都只會分別移除並重新新增 <Run></Run> 符號。 但符號實際上已移除並新增,因此它們會包含在集合中。

TextChanged如果事件因屬性變更而發生, Changes 則為空集合。 在上述範例中,如果使用者將整個字串設為粗體,則 FontWeightRun 的 屬性會設定為 Bold ,但檔中不會新增或移除任何專案,因此 Changes 是空的。

Changes.NET Framework 3.5 版引進。 如需詳細資訊,請參閱版本和相依性

適用於