本文整理汇总了C#中Windows.UI.Xaml.Controls.TextBox.GetRectFromCharacterIndex方法的典型用法代码示例。如果您正苦于以下问题:C# TextBox.GetRectFromCharacterIndex方法的具体用法?C# TextBox.GetRectFromCharacterIndex怎么用?C# TextBox.GetRectFromCharacterIndex使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Windows.UI.Xaml.Controls.TextBox
的用法示例。
在下文中一共展示了TextBox.GetRectFromCharacterIndex方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetTextboxSelectionRect
// returns a rect for selected text
// if no text is selected, returns caret location
// textbox should not be empty
private Rect GetTextboxSelectionRect(TextBox textbox)
{
Rect rectFirst, rectLast;
if (textbox.SelectionStart == textbox.Text.Length)
{
rectFirst = textbox.GetRectFromCharacterIndex(textbox.SelectionStart - 1, true);
}
else
{
rectFirst = textbox.GetRectFromCharacterIndex(textbox.SelectionStart, false);
}
int lastIndex = textbox.SelectionStart + textbox.SelectionLength;
if (lastIndex == textbox.Text.Length)
{
rectLast = textbox.GetRectFromCharacterIndex(lastIndex - 1, true);
}
else
{
rectLast = textbox.GetRectFromCharacterIndex(lastIndex, false);
}
rectFirst.Union(rectLast);
GeneralTransform transform = textbox.TransformToVisual(null);
return transform.TransformBounds(rectFirst);
}
示例2: GetTextboxSelectionRect
// returns a rect for selected text
// if no text is selected, returns caret location
// textbox should not be empty
private Rect GetTextboxSelectionRect(TextBox textbox)
{
Rect rectFirst, rectLast;
if (textbox.SelectionStart == textbox.Text.Length)
{
rectFirst = textbox.GetRectFromCharacterIndex(textbox.SelectionStart - 1, true);
}
else
{
rectFirst = textbox.GetRectFromCharacterIndex(textbox.SelectionStart, false);
}
var lastIndex = textbox.SelectionStart + textbox.SelectionLength;
if (lastIndex == textbox.Text.Length)
{
rectLast = textbox.GetRectFromCharacterIndex(lastIndex - 1, true);
}
else
{
rectLast = textbox.GetRectFromCharacterIndex(lastIndex, false);
}
var buttonTransform = textbox.TransformToVisual(null);
var point = buttonTransform.TransformPoint(new Point());
// Make sure that we return a valid rect if selection is on multiple lines
// and end of the selection is to the left of the start of the selection.
double x, y, dx, dy;
y = point.Y + rectFirst.Top;
dy = rectLast.Bottom - rectFirst.Top;
if (rectLast.Right > rectFirst.Left)
{
x = point.X + rectFirst.Left;
dx = rectLast.Right - rectFirst.Left;
}
else
{
x = point.X + rectLast.Right;
dx = rectFirst.Left - rectLast.Right;
}
return new Rect(x, dx, y, dy);
}
示例3: GetTextboxSelectionRect
// Se crea el Rectangulom y su posición
private Rect GetTextboxSelectionRect(TextBox textbox)
{
Rect rectFirst, rectLast;
if (textbox.SelectionStart == textbox.Text.Length)
{
rectFirst = textbox.GetRectFromCharacterIndex(textbox.SelectionStart - 1, true);
}
else
{
rectFirst = textbox.GetRectFromCharacterIndex(textbox.SelectionStart, false);
}
int lastIndex = textbox.SelectionStart + textbox.SelectionLength;
if (lastIndex == textbox.Text.Length)
{
rectLast = textbox.GetRectFromCharacterIndex(lastIndex - 1, true);
}
else
{
rectLast = textbox.GetRectFromCharacterIndex(lastIndex, false);
}
GeneralTransform buttonTransform = textbox.TransformToVisual(null);
Point point = buttonTransform.TransformPoint(new Point());
double x, y, dx, dy;
y = point.Y + rectFirst.Top;
dy = rectLast.Bottom + rectFirst.Top;
if (rectLast.Right > rectFirst.Left)
{
x = point.X + rectFirst.Left;
dx = rectLast.Right - rectFirst.Left;
}
else
{
x = point.X + rectLast.Right;
dx = rectFirst.Left - rectLast.Right;
}
return new Rect(x,y,dx,dy);
}
示例4: GetTextBoxRect
private Rect GetTextBoxRect(TextBox t)
{
Rect temp = t.GetRectFromCharacterIndex(t.SelectionStart, false);
GeneralTransform transform = t.TransformToVisual(null);
Point point = transform.TransformPoint(new Point());
point.X = point.X + temp.X;
point.Y = point.Y + temp.Y;
return new Rect(point, new Size(temp.Width, temp.Height));
}