मैं निम्नलिखित के रूप में WPF में एक लेबल के पाठ में एक नई पंक्ति कैसे जोड़ सकता हूं?
<Label>Lorem
ipsum</Label>
जवाबों:
<Label><TextBlock>Lorem<LineBreak/>ipsum</TextBlock></Label>
आपको TextBlock का उपयोग करने की आवश्यकता है क्योंकि TextBlock बच्चों को इनलाइन ऑब्जेक्ट्स के संग्रह के रूप में स्वीकार करता है। तो आप TextBlock तत्व को तीन इनलाइन आइटम दे रहे हैं: Run Text = "Lorem", LineBreak, और Run Text = "ipsum"।
आप निम्न कार्य नहीं कर सकते:
<Label>Lorem<LineBreak/>ipsum</Label>`
क्योंकि एक लेबल एक सामग्री बाल तत्व को स्वीकार करता है।
इसके अलावा, निश्चित नहीं कि आपका उपयोग मामला क्या है, लेकिन ध्यान दें कि मैंने आपके लेबल तत्व के अंदर एक TextBlock रखा है। क्या यह दोहराव है? वास्तव में नहीं, आपकी जरूरत पर निर्भर करता है। यहां दो तत्वों के बीच अंतर पर एक अच्छा लेख है: लेबल और टेक्स्टब्लॉक के बीच अंतर
Lorem
Ipsum
WPF में आप मान का उपयोग कर सकते हैं " "
या"
"
उदाहरण के लिए:
<Label Content="Lorem ipsum" />
("10" न्यूलाइन के लिए ASCII नंबर है)
या
<Label Content="Lorem
ipsum" />
("ए" हेक्स में न्यूलाइन के लिए एएससीआईआई नंबर है)
व्यूमॉडल या मॉडल में ऐसा करते समय, मैंने पाया है कि एनवायरनमेंट का उपयोग करना। न्यूलाइन का सबसे अधिक सुसंगत परिणाम है, जिसमें स्थानीयकरण भी शामिल है। इसे सीधे व्यू में भी काम करना चाहिए, लेकिन मैंने इसका परीक्षण नहीं किया है।
उदाहरण:
दृश्य में
<Label Content="{Binding SomeStringObject.ParameterName}" />
ViewModel में:
SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";
एक टूल जैसे कि एक बटन के रूप में कई लाइनों के साथ टूलटिप को जोड़ने का एक उदाहरण। टूलटिप चौड़ाई सीमित है इसलिए यह एक वाक्य बहुत चौड़ा होने पर लपेटेगा।
<!-- Button would need some properties to make it clickable.-->
<Button>
<Button.ToolTip>
<TextBlock Text="Line 1
Line 2" MaxWidth="300" TextWrapping="Wrap"/>
</Button.ToolTip>
</Button>
VS2019 + .NET 4.6.1 + WPF पर परीक्षण किया गया।
<TextBlock> <Run>First</Run> <LineBreak/> <Run>Second</Run> </TextBlock>