المشاركات : 147
المواضيع 41
الإنتساب : Jul 2014
السمعة :
1
الشكر: 387
تم شكره 50 مرات في 6 مشاركات
شكراً أخي العزيز nmst70
لكن للأسف لم يكن هذا ما أردته وإنما العكس تماماً أريد ضغط حجم النص ليتناسب مع حجم مربع النص وليس العكس
جزاك الله خيراً على أية حال
{ اللهم علمنا ما ينفعنا وانفعنا بما علمتنا إنك أنت العليم الخبير }
المشاركات : 1,486
المواضيع 101
الإنتساب : Sep 2012
السمعة :
127
الشكر: 71
تم شكره 6155 مرات في 1035 مشاركات
المشكلة هنا ليست في عمل Scale للفونت المشكلة ان الفونت يصغر كلما قام المستخدم ب الكتابة ف التكست بوكس.
ما أريد أن أقوله هنا هو أننا نقوم ب حل مشكلة و نصنع مشكلة أخري ......
للأسف التكست بوكس ليس به خاصية تحدد هل انتهي المستخدم من الكتابة ام لا ........و عندما نقوم ب نتغيير حجم الفونت أثناء الكتابة ستكون النتيجة الحتمية هي أن المستخدم قد لا يري ما يكتبه بوضوح لأن الفونت يقل حجمه كلما استمر المستخدم في الكتابة
أعتقد و الله أعلم إن الحل الأفضل هو أن نترك المستخدم يكتب ما يريده ب الفونت العادي....ثم نحاول أن نكتشف هل انتهي من الكتابة أم لا ثم بعد ذلك نقوم ب تغيير حجم الفونت ليتناسب To Fit في التكست بوكس لذلك و كما قلت سابقا نحن في حاجة الي صناعة كونترول جديد يتم توريثه من التكست بوكس و نغير في خصائصه عن طريق رسم التكست في الحدث Paint ليتناسب مع ما تريد
لكن انا عندي سؤال ما هدفك الأصلي من تحجيم الفونت في التكست بوكس ..ربما لو قمت بتوضيح هدفك من ذلك قد نجد حلا اسهل ليتناسب مع ما تريده
المشاركات : 147
المواضيع 41
الإنتساب : Jul 2014
السمعة :
1
الشكر: 387
تم شكره 50 مرات في 6 مشاركات
سأخبرك بذلك أخي silverlight
{ اللهم علمنا ما ينفعنا وانفعنا بما علمتنا إنك أنت العليم الخبير }
المشاركات : 147
المواضيع 41
الإنتساب : Jul 2014
السمعة :
1
الشكر: 387
تم شكره 50 مرات في 6 مشاركات
السلام عليكم
أخواني الأعزاء أخيراً وبفضل الله تعالى وجدت الحل لضغط حجم النص تلقائياً في مربع النص وذلك بتعديل حجم الخط
كود :
Dim fontSize As Single = 12.0F
Dim measuredWidth As Single
Dim g As Graphics = Me.CreateGraphics
Do
Using font As New Font("Tahoma", fontSize, FontStyle.Bold)
measuredWidth = g.MeasureString(TextBox1.Text, font).Width
End Using
If (measuredWidth > TextBox1.Width) Then
fontSize = fontSize - 0.1
End If
Loop While (measuredWidth > TextBox1.Width)
Using font As New Font("Tahoma", fontSize, FontStyle.Bold)
TextBox1.Font = New Font("Tahoma", fontSize, FontStyle.Bold)
End Using
تقبلوا جميعاً تحياتي
{ اللهم علمنا ما ينفعنا وانفعنا بما علمتنا إنك أنت العليم الخبير }