Xamarin.iOS CoreGraphics.CGSize cGSize = new CoreGraphics.CGSize(1000, 1000); public double getDisplayLength(string str) { var s = new NSAttributedString(str); var size = s.GetBoundingRect(cGSize, NSStringDrawingOptions.UsesLineFragmentOrigin, null); return size.Width; } Xamarin.Android Paint paint = new Paint(); public double getDisplayLength(string str) { float[] widths = new float[str.Length]; paint.GetTextWidths(str, widths); float sum = 0; widths.ForEachWithIndex((o, index) => { sum += o; }); return sum; } 其中ForEachWithIndex是我自己写的一个扩展方法,方便遍历数组; public static void ForEachWithIndex<T>(this T[] array, Action<T, int> action) { for (int i = 0; i < array.Length; i++) { action(array[i], i); } }……
阅读全文