في مربع نص برنامج الأغذية العالمي يمكنني تقديم الأحرف في سلسلة التي تتجاوز مدة معينة إلى اللون الأحمر؟
-
05-07-2019 - |
سؤال
وأنا باستخدام عنصر تحكم TextBox
وتريد الأحرف إلى اللون الأحمر بعد عدد معين من الأحرف لإظهار المستخدمين قاموا بكتابتها أكثر من اللازم. أنا لا أريد لاقتطاع باسم المستخدم قد كتبته أن "الفكر الهام حقا" وإذا كنت اقتطاع فإنها سوف تفقد ذلك. لدي المصادقة على بلدي نموذج الأعمال الأساسي الذي يقول لي عند المدخل غير صحيح وأنا أسلوبي TextBox
لإظهار العجز.
وأريد أن Style
النص كذلك. يمكنني أن أفعل هذا باستخدام TextBox
، أو هل أنا بحاجة للذهاب إلى RichTextBox
؟ بلدي القيمة الأساسية هي مجرد سلسلة متتالية.
المحلول
وأفترض أنك تستخدم آلية التحقق الأسهم WPF - ValidationRules
. إذا كان الأمر كذلك، يجب تحديد Trigger
على Validation.HasError == true
، وتعيين خصائص TextBox
حسب الحاجة. على سبيل المثال، ما يلي تسليط الضوء على النص مع أحمر إذا كان غير صالح.
<TextBox>
<TextBox.Text>
<Binding ...>
<Binding.ValidationRules>
...
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
نصائح أخرى
وهذا هو نوع من الإجابة مجنون وأنا لم يحاكم بعد، ولكن إذا كان يعمل، هل سيكون قادرا على الاستمرار في استخدام النص بدلا من النص الغني.
وماذا لو كنت تستخدم فرشاة التدرج لرسم النص (أو إذا لم يكن النص، وخلفية النص، إذا كان ذلك مقبولا لك).
وأنت ستبني التدرج حتى أنه كان أبيض وصولا إلى النقطة حصلت على المدخلات وقتا طويلا والأحمر بعد العنابر. بالطبع حتى حصلت على نص طويل جدا ان يكون كل فرشاة الأبيض.
وهذا من شأنه أن ينطوي على قياس النص للحصول على حق تعريف التدرج (منذ خطوط المتناسبة سوف تتسبب في المنطقة صالحة ليكون حجم مختلفة اعتمادا على الحروف دخل) و يتطلب أن تحسب الفرشاة وتعيين في كل حرف تم إدخالها.