2011-02-24 12 views
7

मैं डब्ल्यूपीएफ के लिए नया हूं, यह नहीं पता कि सवाल अजीब है या नहीं। मैं जानना चाहता था कि टेक्स्टब्लॉक के अंदर पाठ के चारों ओर एक सीमा जोड़ना संभव है या नहीं।WPF में टेक्स्टब्लॉक के अंदर टेक्स्ट में सीमा कैसे जोड़ें?

संपादित करें:

प्रति सुझाव के रूप में मैं कोशिश की है दोनों लेकिन ज्यादा सफलता के बिना:

<Border BorderBrush="#FF0B232F" BorderThickness="2"> 
    <TextBlock HorizontalAlignment="Left" Text="TextBlock" TextWrapping="Wrap" FontSize="36" FontWeight="Bold" Foreground="#FF88BCCD" OpacityMask="Black"/>  
</Border> 

और

<Label BorderBrush="#FF0B232F" BorderThickness="2,2,2,2" Content="TextBlock" FontSize="36" FontWeight="Bold" Foreground="#FF88BCCD" /> 

मैंने कुछ गलत यहां क्या कर रहा हूं?

+0

यह आपके कोड के साथ ठीक है। आप इसमें क्या नापसंद करते हैं? –

+2

उनका सवाल यह है कि "टेक्स्ट टेक्स्ट के अंदर पाठ (चारों ओर की सामग्री) के चारों ओर एक सीमा जोड़ने के लिए कैसे ..." किसी ने उस प्रश्न का उत्तर नहीं दिया। मैं यह भी जानना चाहूंगा कि यह कैसे करें। – zezba9000

+1

इस उत्तर को देखें - http://stackoverflow.com/questions/93650/apply-stroke-to-a-textblock-in-wpf – zezba9000

उत्तर

3

ऐसे मामलों में मैं Label या TextBlockBorder में रखता हूं।

0

अगर आप सिर्फ अपने TextBlock या किसी अन्य नियंत्रण का उपयोग करने के चारों ओर एक सीमा करना चाहते हैं:

<Border> 
     <TextBlock></TextBlock> 
    </Border> 

आप रंग, cornerradius, मोटाई, जैसे सीमा गुण सेट ...

4

दोनों अपने दृष्टिकोण हैं सही, हालांकि, यदि आपके पास एक ग्रिड (या कोई अन्य कंटेनर) के अंदर टेक्स्टब्लॉक/लेबल है जो आपके पास घोषित किया गया है, तो इसकी सामग्री फैल जाएगी। एक उपयुक्त सेटिंग (शीर्ष/बाएं, मध्य) को VerticalAlignment और/या HorizontalAlignment सेट करके देखें ..

कुछ इस तरह:

<Border BorderBrush="#FF0B232F" BorderThickness="2" VerticalAlignment="Top"> 
    <TextBlock HorizontalAlignment="Left" Text="TextBlock" TextWrapping="Wrap" FontSize="36" FontWeight="Bold" Foreground="#FF88BCCD" OpacityMask="Black"/> 
</Border> 
+1

फ़िलिप सही है - यदि ग्रिड/युक्त अन्य ऑब्जेक्ट्स हैं तो सीमा प्रभावी रूप से कवर होगी पूरे ग्रिड - वर्टिकल एलाइनमेंट और क्षैतिज संरेखण इसे ठीक करता है। सहज नहीं है! – Ricibob

2

यह मानते हुए कि आप एक सीमा के साथ एक पूर्ण आकार TextBlock के लिए पूछ रहे हैं TextBlock की सीमा के भीतर ओवरले आप एक ग्रिड में लपेट और इस तरह TextBlock के शीर्ष पर सीमाओं आकर्षित कर सकता है ...

<Grid HorizontalAlignment="Left"> 
    <TextBlock Text="TextBlock" TextWrapping="Wrap" FontSize="36" FontWeight="Bold" Foreground="#FF88BCCD" OpacityMask="Black" /> 
    <Border BorderBrush="#FF0B232F" BorderThickness="2" /> 
</Grid> 

हम निर्दिष्ट नहीं किया है क्योंकि ग्रिड पंक्ति और TextBlock पर स्तंभ और सीमा टेक्स्टब्लॉक के शीर्ष पर सीमा ओवरले ऑब्जेक्ट करता है।

संबंधित मुद्दे