في مربع نص برنامج الأغذية العالمي يمكنني تقديم الأحرف في سلسلة التي تتجاوز مدة معينة إلى اللون الأحمر؟

StackOverflow https://stackoverflow.com/questions/1204412

سؤال

وأنا باستخدام عنصر تحكم 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>

نصائح أخرى

وهذا هو نوع من الإجابة مجنون وأنا لم يحاكم بعد، ولكن إذا كان يعمل، هل سيكون قادرا على الاستمرار في استخدام النص بدلا من النص الغني.

وماذا لو كنت تستخدم فرشاة التدرج لرسم النص (أو إذا لم يكن النص، وخلفية النص، إذا كان ذلك مقبولا لك).

وأنت ستبني التدرج حتى أنه كان أبيض وصولا إلى النقطة حصلت على المدخلات وقتا طويلا والأحمر بعد العنابر. بالطبع حتى حصلت على نص طويل جدا ان يكون كل فرشاة الأبيض.

وهذا من شأنه أن ينطوي على قياس النص للحصول على حق تعريف التدرج (منذ خطوط المتناسبة سوف تتسبب في المنطقة صالحة ليكون حجم مختلفة اعتمادا على الحروف دخل) و يتطلب أن تحسب الفرشاة وتعيين في كل حرف تم إدخالها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top