silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了silverlight – 在TextBox中获取插入位置大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

如何在TextBox控件中的可见客户端区域中获取插入位置(x,y)?我需要在文本框中添加自动完成功能. 我找到了solution for WPF,但它无法在Silverlight中应用. public class AutoCompleteTextBox : TextBox { public Point GetPositionFromCharacterIndex(int indeX)
如何在TextBox控件中的可见客户端区域中获取插入位置(x,y)?我需要在文本框中添加自动完成功能.

我找到了solution for WPF,但它无法在Silverlight中应用.

解决方法

@H_262_25@
public class AutoCompleteTextBox : TextBox
{
    public Point GetPositionFromCharacterIndex(int indeX)
    {
        if (textwrapping == textwrapping.Wrap) throw new NotSupportedException();

        var text = Text.SubString(0,indeX);

        int lastNewLineIndex = text.LasTindexOf('\r');

        var leftText = lastNewLineIndex != -1 ? text.SubString(lastNewLineIndex + 1) : text;

        var block = new TextBlock
                        {
                            FontFamily = FontFamily,FontSize = FontSize,FontStretch = FontStretch,FontStyle = FontStyle,FontWeight = FontWeight
                        };

        block.Text = text;
        double y = block.ActualHeight;

        block.Text = leftText;
        double x = block.ActualWidth;

        var scrollViewer = GetTemplateChild("ContentElement") as ScrollViewer;

        var point = scrollViewer != null
                        ? new Point(x - scrollViewer.HorizontalOffset,y - scrollViewer.VerticalOffset)
                        : new Point(x,y);
        point.X += BorderThickness.Left + Padding.Left;
        point.Y += BorderThickness.Top + Padding.Top;

        return point;
    }
}

大佬总结

以上是大佬教程为你收集整理的silverlight – 在TextBox中获取插入位置全部内容,希望文章能够帮你解决silverlight – 在TextBox中获取插入位置所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。