При использовании GetRectFromCharacterIndex
в UWP (в отличие от WPF) результатом является абсолютное смещение от места ввода текста, а не внутри элемента управления.
Например, следующий XAML:
<TextBox x:Name="noPadding" Margin="0,0,0,20" Text="aaa"/>
При вызове GetRectFromCharacterIndex(0)
возвращает различное значение Rect.Left
для UWP и WPF.
WPF: Rect.Left == 3
UWP: Rect.Left == 0
Разница становитсяЕще более отчетливо, когда вы изменяете стиль или иначе вид элемента управления:
<TextBox x:Name="withPadding" Padding="60,0,0,0" Margin="0,0,0,20" Text="aaa"/>
WPF: Rect.Left == 63
UWP: Rect.Left == 0
Как мне узнать фактическое местоположение персонажа наэлемент управления?
Примечание: Я знаю, что могу взломать его, вычислив позицию из TextView, который находится внутри TextBox.Но я пытаюсь понять, что поддерживает способ сделать это.