2010-03-12 8 views
6

क्या ग्रिड जैसे लेआउट कंटेनर के अंदर एक लाइन को संरेखित करने के लिए एक्सएएमएल (बिना किसी सी # कोड के) में एक लाइन बनाना संभव है?शुद्ध एक्सएएमएल में, क्या ग्रिड के हिस्से में संरेखित करने के लिए लाइन प्राप्त करना संभव है?

मैं चाहता प्रभावी ढंग से करने के लिए:

<Grid> 
    <Line StrokeThickness="1" 
      HorizontalAlignment="Stretch" 
      VerticalAlignment="Bottom" 
      Stroke="Red"/> 
</Grid> 

मैं StrokeDashArray और StrokeDashOffset उपयोग करने की आवश्यकता है, अन्यथा मैं सिर्फ BorderThickness "0,0,0,1" करने के लिए सेट के साथ एक Border नियंत्रण का प्रयोग करेंगे ...

के लिए धन्यवाद कोई विचार!

उत्तर

10

kanchirk की प्रतिक्रिया पर विस्तार से बता दें यह मेरे लिए काम करता है:

<Path StrokeThickness="1" 
HorizontalAlignment="Stretch" 
VerticalAlignment="Bottom" 
Data="M0,0 L1,0" 
Stretch="Fill" 
StrokeEndLineCap="Square" 
StrokeStartLineCap="Square" 
Stroke="Red"/> 

तुम भी एक Line साथ एक ही बात कर सकते हैं:

<Line StrokeThickness="1" 
HorizontalAlignment="Stretch" 
VerticalAlignment="Bottom" 
X2="1" 
Stretch="Fill" 
StrokeEndLineCap="Square" 
StrokeStartLineCap="Square" 
Stroke="Red"/> 
+1

धन्यवाद - यह बहुत अच्छा है, और मेरे प्रश्न का उत्तर phrased के रूप में करता है। उत्तर के रूप में चिह्नित। हालांकि, मैं वास्तव में टेक्स्ट ब्लॉक के लिए फैंसी अंडरलाइनिंग की नकल करने के लिए इसका उपयोग करना चाहता हूं, इसलिए मैं कंटेनर को भरने की आवश्यकता से बड़ा नहीं करना चाहता हूं। –

+0

क्या आप कह रहे हैं कि यह इसके कंटेनर से बड़ा हो जाएगा? शायद आपको एक और विशिष्ट प्रश्न बनाना चाहिए (और यहां से लिंक करें) यदि यह वास्तव में आपके लिए काम नहीं करेगा। – Gabe

+0

@Gabe समस्या यह है कि 'स्ट्रेच = फिल' 'स्ट्रोकडैशअरे' और संबंधित गुणों का उपयोग करना असंभव नहीं है, जो बिंदीदार/धराशायी रेखा बनाने के लिए असंभव नहीं है, क्योंकि यह डॉट्स/डैश के "टाइल" के बजाय "खिंचाव" करेगा। – Livven

1

मैं आप इस

<Grid x:Name="LayoutRoot" Background="White"> 

<Path Fill="Red" Stretch="Fill" Stroke="Black" StrokeDashArray="1" Height="4" Margin="8,0,7,7" VerticalAlignment="Bottom" UseLayoutRounding="False" Data="M8,127 L457,127" StrokeThickness="13"/> 

</Grid> 

आशा इस मदद करता है की तरह पथ उपयोग करने की आवश्यकता है। अभिव्यक्ति मिश्रण इस तरह की चुनौतियों या यहां तक ​​कि वीएस 2010 आरसी 1 (अभी के लिए)

1

इस बारे में कैसे होना चाहिए?

<Line x:Name="line" 
StrokeThickness="1" 
HorizontalAlignment="Stretch" 
VerticalAlignment="Bottom" 
Stroke="Red" 
X2="{Binding ActualWidth, ElementName=line, Mode=OneWay}" 
Stretch="Fill" 
StrokeStartLineCap="Square" 
StrokeEndLineCap="Square"/> 
+0

बाइंडिंग दिलचस्प है, धन्यवाद। प्रदर्शन कारणों से हालांकि मैं इसका उपयोग करने के लिए थके हुए हूं। –

+0

यह कोड मेरे लिए काम नहीं करता है। – Gabe

+0

@gabe, आप सही है। मुझे स्ट्रेच, स्ट्रोक स्टार्टलाइन कैप और स्ट्रोकइंडलाइन कैप याद आया। अब यह ठीक हो जाएगा। वैसे भी, आपका समाधान सभी के लिए बेहतर है। : डी – Gongdo