كيف يمكنني تحويل سلسلة طول بكسل الوحدة ؟
-
19-08-2019 - |
سؤال
لدي سلسلة مثل هذا:
string s = "This is my string";
أنا خلق Telerik تقرير و لا تحتاج إلى تعريف textbox
هذا هو عرض من سلسلة بي.ومع ذلك حجم المنشأة يحتاج إلى أن يتم تعيين وحدة (بكسل, نقطة, بوصة, الخ).كيف يمكنني تحويل طول السلسلة إلى القول بكسل لذا يمكن تعيين العرض ؟
تحرير: لقد حاولت الحصول على مرجع إلى كائن الرسومات, ولكن هذا يتم في فئة يرث من Telerik.Reporting.Report
.
المحلول
دون استخدام عنصر التحكم أو النموذج:
using (System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(new Bitmap(1, 1)))
{
SizeF size = graphics.MeasureString("Hello there", new Font("Segoe UI", 11, FontStyle.Regular, GraphicsUnit.Point));
}
أو في VB.Net:
Using graphics As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(New Bitmap(1, 1))
Dim size As SizeF = graphics.MeasureString("Hello there", New Font("Segoe UI", 11, FontStyle.Regular, GraphicsUnit.Point))
End Using
نصائح أخرى
Size textSize = TextRenderer.MeasureText("How long am I?", font);
في هذه الحالة, أنا عادة استخدام القذرة ، ولكن طريقة بسيطة:
- إضافة غير مرئية
Label
أنAutoSize
العقارtrue
-العمل القذر-. - عندما كنت تريد أن يكون
Width
عن سلسلة معينة ، إلىLabel.Text
. - على
Width
منLabel
سوف تعطيني القيمة الصحيحة.
يعتمد على الخط أيضا.طول السلسلة ليست كافية.
يمكنك إنشاء مثيل كائن رسومات غير استخدام MeasureString()
الأسلوب.ولكن سوف تحتاج إلى تمرير اسم الخط وحجم الخط وغيرها من المعلومات.
لا تنتمي إلى StackOverflow