WPF

2012-08-03 8 views
12

में धारी ब्रश बनाने के रूप में ब्लॉग में दिखाया गया है मैं धारियों के लिए एक ब्रश (DrawingBrush) बना सकते हैं कैसे:WPF

http://blog.pixelingene.com/2008/09/quick-tip-to-get-a-striped-background/

मैं इसे इस्तेमाल नहीं कर सकते, क्योंकि यह का उपयोग करता है पैमाने को बदलने, अगर जिसका अर्थ है यूआई तत्व छोटा है, पट्टियां बहुत ज्यादा दिखाई नहीं दे रही हैं या बहुत करीब हैं।

मैं छवि ब्रश का उपयोग नहीं कर सकता क्योंकि मुझे रंगों को बांधने की आवश्यकता है।

उत्तर

12

नीचे 45 डिग्री कोण पट्टी पैटर्न बनाता है। ऑल्टर व्यूपोर्ट धारियों

<DrawingBrush Stretch="UniformToFill" ViewportUnits="Absolute" Viewport="0,0,10,10" TileMode="Tile"> 
    <DrawingBrush.Drawing> 
     <DrawingGroup> 
      <DrawingGroup.Children> 
       <GeometryDrawing Brush="Black"> 
        <GeometryDrawing.Geometry> 
         <GeometryGroup FillRule="Nonzero"> 
          <PathGeometry> 
           <PathFigure StartPoint="0,0"> 
            <LineSegment Point="100,0"/> 
            <LineSegment Point="100,100"/> 
            <LineSegment Point="0,100"/> 
           </PathFigure> 
          </PathGeometry> 
         </GeometryGroup> 
        </GeometryDrawing.Geometry> 
       </GeometryDrawing> 
       <GeometryDrawing Brush="#FF404040"> 
        <GeometryDrawing.Geometry> 
         <GeometryGroup FillRule="Nonzero"> 
          <PathGeometry> 
           <PathFigure StartPoint="0,0"> 
            <LineSegment Point="25,0"/> 
            <LineSegment Point="100,75"/> 
            <LineSegment Point="100,100"/> 
            <LineSegment Point="75,100"/> 
            <LineSegment Point="0,25"/> 
            <LineSegment Point="0,0"/> 
           </PathFigure> 
           <PathFigure StartPoint="75,0"> 
            <LineSegment Point="100,25"/> 
            <LineSegment Point="100,0"/> 
           </PathFigure> 
           <PathFigure StartPoint="0,75"> 
            <LineSegment Point="25,100"/> 
            <LineSegment Point="0,100"/> 
           </PathFigure> 
          </PathGeometry> 
         </GeometryGroup> 
        </GeometryDrawing.Geometry> 
       </GeometryDrawing> 
      </DrawingGroup.Children> 
     </DrawingGroup> 
    </DrawingBrush.Drawing> 
</DrawingBrush> 

का आकार बदलने के वैकल्पिक रूप से आप के लिए बाध्य कर सकता है पैमाने ऊंचाई multibinding का उपयोग कर नियंत्रण की चौड़ाई के बदलने। फिर कनवर्टर के साथ, आप अधिकतम ऊंचाई या चौड़ाई के पैमाने को बदलते हैं, तो पट्टियां एक ही आकार में रहेंगी।

11

बस MappingMode = "पूर्ण" का उपयोग करें:

<LinearGradientBrush MappingMode="Absolute" x:Key="HatchBrush" StartPoint="0,0" EndPoint="4,4" SpreadMethod="Repeat"> 
    <GradientStop Offset="0" Color="LightCoral"/> 
    <GradientStop Offset="0.75" Color="LightCoral"/> 
    <GradientStop Offset="0.75" Color="Gray"/> 
    <GradientStop Offset="1" Color="Gray"/> 
</LinearGradientBrush> 
संबंधित मुद्दे