GetCharacterIndexFromPoint in Silverlight
本文关键字:Silverlight in GetCharacterIndexFromPoint | 更新日期: 2023-09-27 18:19:17
在Silverlight中是否有对应的GetCharacterIndexFromPoint ?或任何其他方法来确定,我的对象被放置在哪里(从拖放方法)?
你最好的选择是使用RichTextBox。GetPositionFromPoint
由于Silverlight支持GetRectFromCharacterIndex(),您可以使用它来重新实现GetCharacterIndexFromPoint()
(但它可能会更慢,不幸的是不支持snapToText
参数)。
类似于(未经测试):
public static int GetCharacterIndexFromPoint(this TextBox textBox, Point point)
{
try {
return Enumerable.Range(0, textBox.Text.Length).First(
index => {
Rectangle rect = textBox.GetRectFromCharacterIndex(index, false);
rect.Union(textBox.GetRectFromCharacterIndex(index, true));
return rect.Contains(point);
});
} catch (InvalidOperationException) {
// No character lies at specified point.
return -1;
}
}