<Run> में "टेक्स्ट" या "सामग्री" जैसे गुण नहीं होते हैं, जैसे कई टेक्स्ट XAML तत्व। मैं <Run> तत्व का उपयोग करके सामग्री प्राप्त करने का प्रयास कर रहा था

MessageBox.Show(Convert.ToString(output.Inlines.ElementAt(0)));

इससे पहले, मैंने output भरा था जो <Run> तत्वों के साथ एक टेक्स्ट ब्लॉक है, और इसलिए मैंने ElementAt(0) का उपयोग किया। हालाँकि, इस कोड को चलाकर मुझे जो आउटपुट मिलता है, वह <Run> तत्व के मान के बजाय "System.Windows.Documents.Run" है। तो मैं उस तत्व का मूल्य कैसे प्राप्त करूं?

1
Itsme1 23 जुलाई 2020, 22:30

2 जवाब

सबसे बढ़िया उत्तर

यदि संग्रह में केवल रन है, तो आप यह कर सकते हैं:

 MessageBox.Show(((Run)output.Inlines.ElementAt(0)).Text);
1
EldHasp 23 जुलाई 2020, 22:50

कारण आपको टेक्स्ट का आउटपुट नहीं मिला क्योंकि आपने इसे रन पर नहीं डाला था।

इसे डालने के बाद आप .Text संपत्ति प्राप्त कर सकते हैं:

एक्सएएमएल

 <TextBlock Name="Text">
            <Run  Text="Hello"
                  FontSize="100"
                  Name="MyRun" />
    </TextBlock>

कोड-बिहाइंड

MessageBox.Show(((Run)Text.Inlines.ElementAt(0)).Text);

यदि आप एकाधिक रनों के माध्यम से लूप करना चाहते हैं:

एक्सएएमएल

    <TextBlock Name="Text">
            <Run  Text="Hello"
                  FontSize="100"
                  Name="MyRun" />
        <Run  Text="My"
              FontSize="100"
              Name="MyRun2" />
        <Run  Text="Friend"
              FontSize="100"
              Name="MyRun3" />
    </TextBlock>

कोड-बिहाइंड

for(int x = 0; x < Text.Inlines.Count; x++)
{
   MessageBox.Show(((Run)Text.Inlines.ElementAt(x)).Text);
}

आशा है कि इससे मदद मिली।

1
Tom Joney 24 जुलाई 2020, 03:12