TextPatternRange.MoveEndpointByUnit Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Metin aralığının bir uç noktasını belge aralığı içinde belirtilen sayıda TextUnittaşır.
public:
int MoveEndpointByUnit(System::Windows::Automation::Text::TextPatternRangeEndpoint endpoint, System::Windows::Automation::Text::TextUnit unit, int count);
public int MoveEndpointByUnit (System.Windows.Automation.Text.TextPatternRangeEndpoint endpoint, System.Windows.Automation.Text.TextUnit unit, int count);
member this.MoveEndpointByUnit : System.Windows.Automation.Text.TextPatternRangeEndpoint * System.Windows.Automation.Text.TextUnit * int -> int
Public Function MoveEndpointByUnit (endpoint As TextPatternRangeEndpoint, unit As TextUnit, count As Integer) As Integer
Parametreler
- endpoint
- TextPatternRangeEndpoint
Taşınacak uç nokta.
- unit
- TextUnit
Taşıma için metin birimi.
- count
- Int32
Taşınacak birim sayısı. Pozitif bir sayı uç noktayı ileri taşır. Negatif bir sayı geriye doğru hareket eder. 0 sayısının hiçbir etkisi yoktur.
Döndürülenler
Gerçekte taşınan birim sayısı, uç nokta belgenin başına veya sonuna taşınırsa istenen sayıdan az olabilir.
Örnekler
private Int32 MoveEndpointByRangeFromSelection(AutomationElement target, Int32 units)
{
// Specify the control type we're looking for, in this case 'Document'
PropertyCondition cond = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document);
// target --> The root AutomationElement.
AutomationElement textProvider = target.FindFirst(TreeScope.Descendants, cond);
TextPattern textpatternPattern = textProvider.GetCurrentPattern(TextPattern.Pattern) as TextPattern;
if (textpatternPattern == null)
{
Console.WriteLine("Root element does not contain a descendant that supports TextPattern.");
return 0;
}
TextPatternRange[] currentSelection = textpatternPattern.GetSelection();
return currentSelection[0].MoveEndpointByUnit(
TextPatternRangeEndpoint.Start, TextUnit.Paragraph, units);
}
Private Function MoveEndpointByRangeFromSelection(ByVal target As AutomationElement, ByVal units As Int32) As Int32
' Specify the control type we're looking for, in this case 'Document'
Dim cond As PropertyCondition = New PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document)
' target --> The root AutomationElement.
Dim textProvider As AutomationElement = target.FindFirst(TreeScope.Descendants, cond)
Dim textpatternPattern As TextPattern = CType(textProvider.GetCurrentPattern(TextPattern.Pattern), TextPattern)
If (textpatternPattern Is Nothing) Then
Console.WriteLine("Root element does not contain a descendant that supports TextPattern.")
Return Nothing
End If
Dim currentSelection As TextPatternRange() = textpatternPattern.GetSelection()
' GetText(-1) retrieves all characters but can be inefficient
Return currentSelection(0).MoveEndpointByUnit(TextPatternRangeEndpoint.Start, TextUnit.Paragraph, units)
End Function
Açıklamalar
Bir metin aralığının içeriğinde geçiş yapmak gerektiğinde, yöntemin başarıyla yürütülmesi için Move arka planda bir dizi adım uygulanır.
Metin aralığı normalleştirilir; yani metin aralığı uç noktadaki bozuk bir aralığa Start daraltılır ve bu da uç noktayı gereksiz hale getirir End . Bu adım, bir metin aralığının sınırları aştığı
unit
durumlarda belirsizliği kaldırmak için gereklidir; örneğin, "{U}RL https://www.microsoft.com/ metne eklenmiş" ve burada "{" ve "}" metin aralığı uç noktalarıdır.Sonuçta elde edilen aralık, istenen
unit
sınırın başına geri DocumentRange taşınır.Ardından, uç nokta istenen
unit
bir sınıra taşınarak aralık bozuk aralık durumundan End genişletilir.
Move() ve ExpandToEnclosingUnit() için metin aralığının nasıl ayarlandığına ilişkin örnekler
Bir metin kapsayıcısının metin içeriği (veya iç metni) ve köprü veya tablo hücresi gibi eklenmiş bir nesne, hem denetim görünümünde hem de UI Otomasyonu ağacının içerik görünümünde tek, sürekli metin akışı olarak gösterilir; nesne sınırları yoksayılır. bir UI Otomasyonu istemcisi metni bir şekilde yorumlamak, yorumlamak veya çözümlemek amacıyla alırsa, metin aralığı, metin içeriğine veya diğer eklenmiş nesnelere sahip bir tablo gibi özel durumlar için denetlenmelidir. Bu, her katıştırılmış nesne için bir AutomationElement almak üzere çağrılarak GetChildren ve ardından her öğe için bir metin aralığı elde etmek üzere çağrılarak RangeFromChild gerçekleştirilebilir; bu işlem tüm metin içeriği alınana kadar özyinelemeli olarak yapılır.
Eklenmiş nesneler ve bunların aralık aralıkları ile metin akışı örneği
MoveEndpointByUnitverilen denetim tarafından desteklenmiyorsa TextUnit sonraki en büyük TextUnit desteklenene saptırılır.
En küçük birimden en büyüğe sipariş aşağıda listelenmiştir.