2010-05-28 10 views
7

मैं इस सीमा के नीचे की सीमा को कैसे बना सकता हूं सिल्वरलाइट तत्व में लाल लाललाल ठोस लाइन के अंदर बिंदीदार है?सिल्वरलाइट में सीमा तत्व पर बिंदीदार सीमा कैसे बनाएं?

Border border = new Border(); 
border.CornerRadius = new CornerRadius(5); 
border.BorderThickness = new Thickness(0, 0, 0, 1); 
border.BorderBrush = new SolidColorBrush(Colors.Red); 

उत्तर

12

क्या आप सीमा को ग्रिड के साथ बदल सकते हैं और इसे एक आयताकार दे सकते हैं जो पूरे क्षेत्र को भरता है?

<Rectangle Stretch="Fill" RadiusX="10" RadiusY="10" StrokeDashArray="10, 2" Stroke="Black" Fill="White" /> 

StrokeDashArray यह बिंदीदार आकर्षित करने के लिए इस्तेमाल किया जा सकता है, लेकिन एक सीमा में ऐसी कोई संपत्ति नहीं है।

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

के बाद से मैंने देखा है कि आप केवल निचले बॉर्डर इलाके कर रहे हैं तो आप इस

<Border Width="100" Height="100" Background="Blue" BorderThickness="0,0,0,1"> 
    <Border.BorderBrush> 
     <LinearGradientBrush StartPoint="0,0" EndPoint=".2,0" SpreadMethod="Repeat" > 
      <GradientStopCollection> 
       <GradientStop Color="Transparent" Offset="0" /> 
       <GradientStop Color="Transparent" Offset="0.3" /> 
       <GradientStop Color="Red" Offset="0.3" /> 
       <GradientStop Color="Red" Offset="0.6" /> 
       <GradientStop Color="Transparent" Offset="0.6" /> 
       <GradientStop Color="Transparent" Offset="1" /> 
      </GradientStopCollection> 
     </LinearGradientBrush> 
    </Border.BorderBrush> 
</Border> 

की तरह कुछ कर सकता है लाल डॉट की चौड़ाई को समायोजित करने के बीच दो GradientStop के Offset समायोजित/पानी का छींटा। आपको अपने वांछित अंतराल पर इसे दोहराने के लिए एंडपॉइंट को समायोजित करने की भी आवश्यकता हो सकती है।

+2

यदि आप लाइन के साथ डैश को आकार बदलने के बारे में नहीं चाहते हैं, तो आपको 'रैखिकग्रेडेंटब्रश' पर 'मैपिंगमोड = "निरपेक्ष"' सेट करना चाहिए। उस परिवर्तन के बाद आपको कुछ अन्य पैरामीटर को भी ट्विक करना पड़ सकता है। –

6

स्टीफन का उत्तर सहायक है।

<!-- Horizontal dotted line --> 
<Border HorizontalAlignment="Stretch" Height="1" BorderThickness="0,0,0,1"> 
    <Border.BorderBrush> 
    <LinearGradientBrush StartPoint="0,0" EndPoint="2,0" 
         SpreadMethod="Repeat" MappingMode="Absolute"> 
     <GradientStop Color="Transparent" Offset="0" /> 
     <GradientStop Color="Transparent" Offset="0.499" /> 
     <GradientStop Color="#999" Offset="0.5" /> 
    </LinearGradientBrush> 
    </Border.BorderBrush>        
</Border> 

यहाँ एक ऊर्ध्वाधर बिंदीदार रेखा के लिए एक वैकल्पिक है::

<!-- Vertical dotted line --> 
<Border VerticalAlignment="Stretch" Width="1" BorderThickness="0,0,1,0"> 
    <Border.BorderBrush> 
    <LinearGradientBrush StartPoint="0,0" EndPoint="0,2" 
         SpreadMethod="Repeat" MappingMode="Absolute"> 
     <GradientStop Color="Transparent" Offset="0" /> 
     <GradientStop Color="Transparent" Offset="0.499" /> 
     <GradientStop Color="#999" Offset="0.5" /> 
    </LinearGradientBrush> 
    </Border.BorderBrush>        
</Border> 

संयोग से, अगर आप लेकिन यदि आप एक सरल बिंदीदार रेखा के बारे में के रूप में यह आकार बदलने पर खिंचाव नहीं करता चाहते हैं, यह XAML कोशिश इस ब्रश का उपयोग उस क्षेत्र पर करें जो 1px चौड़ा/लंबा नहीं है, फिर आपको एक अच्छा पेंस्रिप पैटर्न मिलता है।

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