我希望在TextBox中拥有最后一个字符的x,y位置。我找到了 GetCharacterIndexFromPoint 方法,这正是一种反向方法。 => here
但是,我找不到合适的方法来获取TextBox中最后一个字符的实际位置。
有谁知道我如何获得这些信息?
答案 0 :(得分:0)
这个问题现在已经很老了,但是我想尝试一下。
我用于获取TextBox中最后一个字符的实际位置的解决方案:
MainWindow.xaml:
<StackPanel>
<Label Margin="10" HorizontalAlignment="Center" Content="Enter First Text: " FontSize="20"/>
<TextBox Name="TextBox" Margin="10" Width="200" LostFocus="TextBox_OnLostFocus"/>
<Button Content="GetPositionFromLastCharacter" Width="200" Click="GetLastCharacterFromTextBox"/>
<Label Margin="10" HorizontalAlignment="Center" Content="Enter second Text: " FontSize="20"/>
<TextBox Margin="10" Width="200"/>
</StackPanel>
MainWindow.xaml.cs中的方法“ GetLastCharacterFromTextBox”
private void GetLastCharacterFromTextBox(object sender, RoutedEventArgs e)
{
int lastCharacterPosition = TextBox.Text.LastIndexOf(TextBox.SelectedText, StringComparison.CurrentCulture);
MessageBox.Show($"Last character from the Text is at position: {lastCharacterPosition}");
}
如您所见,我对文本框中的选定文本使用了“ LastIndexOf”方法。
不显示焦点而显示插入符号的建议:
在TextBox上使用“ LostFocus”属性并实现以下代码:
private void TextBox_OnLostFocus(object sender, RoutedEventArgs e)
{
e.Handled = true;
}
结果如下: Showing caret without focus
即使我不再专注于第一个TextBox,插入符号仍然可见。