سؤال

هل من الممكن WPF Label لتقسيم نفسها تلقائيا إلى عدة خطوط؟ في المثال التالي ، يتم اقتصاص النص على اليمين.

<Window x:Class="..." xmlns="..." xmlns:x="..." Height="300" Width="300">
    <Grid>
        <Label>
            `_Twas brillig, and the slithy toves did gyre and gimble in the wabe:
            all mimsy were the borogoves, and the mome raths outgrabe.
        </Label>
    </Grid>
</Window>

أفعل شيئا خاطئا؟

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

استبدال Label مع TextBlock (نأخذ TextWrapping="Wrap") ، وضبط قالب التحكم الخاص به للتعرف على مفاتيح الوصول ربما يكون حلاً ، لكن أليس من المبالغة؟

تحرير: إن وجود نمط غير قياسي للتسمية سيؤدي إلى كسر البكارة ، لذلك أود تجنب ذلك ، إن أمكن.

هل كانت مفيدة؟

المحلول

يبدو أن استخدام كل من التسمية و SextBlock معًا هو الإجابة الصحيحة. هناك Howto الموجود هنا يوضح هذه المسألة الدقيقة.

على وجه التحديد ، في مثالهم ، للحصول على نص لف ومفتاح الوصول:

<Label Width="200" HorizontalAlignment="Left"
       Target="{Binding ElementName=textBox1}">
  <AccessText TextWrapping="WrapWithOverflow">
    _Another long piece of text that requires text wrapping
    goes here.
  </AccessText>
</Label>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top