画刷
<h3>不同类型画刷的XAML示例及解释</h3>
<p>下面我们展示了在XAML中常用的几种画刷,包括颜色画刷、线性渐变画刷、径向渐变画刷、图片画刷、几何画刷、Visual画刷和BitmapCache画刷。</p>
<h4>1. 颜色画刷(SolidColorBrush)</h4>
<p><strong>描述</strong>: 使用纯色填充区域。</p>
<pre><code class="language-xml">&lt;Border Width=&quot;300&quot; Height=&quot;180&quot;&gt;
&lt;Border.Background&gt;
&lt;SolidColorBrush Color=&quot;Yellow&quot;&gt;&lt;/SolidColorBrush&gt;
&lt;/Border.Background&gt;
&lt;Border.BorderBrush&gt;
&lt;SolidColorBrush Color=&quot;Red&quot;&gt;&lt;/SolidColorBrush&gt;
&lt;/Border.BorderBrush&gt;
&lt;/Border&gt;</code></pre>
<h4>2. 线性渐变画刷(LinearGradientBrush)</h4>
<p><strong>描述</strong>: 使用线性渐变颜色填充区域,可以指定多个渐变点。</p>
<pre><code class="language-xml">&lt;Border Width=&quot;300&quot; Height=&quot;180&quot;&gt;
&lt;Border.Background&gt;
&lt;LinearGradientBrush StartPoint=&quot;1,0&quot; EndPoint=&quot;0,1&quot;&gt;
&lt;GradientStop Color=&quot;Red&quot; Offset=&quot;0&quot;&gt;&lt;/GradientStop&gt;
&lt;GradientStop Color=&quot;Green&quot; Offset=&quot;0.3&quot;&gt;&lt;/GradientStop&gt;
&lt;GradientStop Color=&quot;Pink&quot; Offset=&quot;0.6&quot;&gt;&lt;/GradientStop&gt;
&lt;GradientStop Color=&quot;Yellow&quot; Offset=&quot;1&quot;&gt;&lt;/GradientStop&gt;
&lt;/LinearGradientBrush&gt;
&lt;/Border.Background&gt;
&lt;/Border&gt;</code></pre>
<h4>3. 镜像渐变画刷(RadialGradientBrush)</h4>
<p><strong>描述</strong>: 使用径向渐变颜色从中心向外扩展填充区域。</p>
<pre><code class="language-xml">&lt;Border Width=&quot;300&quot; Height=&quot;180&quot;&gt;
&lt;Border.Background&gt;
&lt;RadialGradientBrush Center=&quot;0.5 0.2&quot; GradientOrigin=&quot;0.5 0.2&quot; RadiusX=&quot;0.5&quot; RadiusY=&quot;1&quot;&gt;
&lt;GradientStop Color=&quot;Red&quot; Offset=&quot;0&quot;&gt;&lt;/GradientStop&gt;
&lt;GradientStop Color=&quot;Green&quot; Offset=&quot;0.3&quot;&gt;&lt;/GradientStop&gt;
&lt;GradientStop Color=&quot;Pink&quot; Offset=&quot;0.6&quot;&gt;&lt;/GradientStop&gt;
&lt;GradientStop Color=&quot;Yellow&quot; Offset=&quot;1&quot;&gt;&lt;/GradientStop&gt;
&lt;/RadialGradientBrush&gt;
&lt;/Border.Background&gt;
&lt;/Border&gt;</code></pre>
<h4>4. 图片画刷(ImageBrush)</h4>
<p><strong>描述</strong>: 使用图像填充区域。</p>
<pre><code class="language-xml">&lt;Border Width=&quot;180&quot; Height=&quot;180&quot; CornerRadius=&quot;90&quot;&gt;
&lt;Border.Background&gt;
&lt;ImageBrush ImageSource=&quot;/画刷/test.png&quot; Stretch=&quot;Fill&quot;&gt;&lt;/ImageBrush&gt;
&lt;/Border.Background&gt;
&lt;/Border&gt;</code></pre>
<h4>5. 雪碧图(Sprite图——ImageBrush)</h4>
<p><strong>描述</strong>: 使用雪碧图(Sprite图)填充区域,可以调整视口和视箱。</p>
<pre><code class="language-xml">&lt;Border Width=&quot;180&quot; Height=&quot;180&quot; CornerRadius=&quot;90&quot;&gt;
&lt;Border.Background&gt;
&lt;ImageBrush ImageSource=&quot;/画刷/slices.png&quot; Viewport=&quot;0,0,250,250&quot; ViewportUnits=&quot;Absolute&quot; Viewbox=&quot;0 0 1 1&quot;&gt;&lt;/ImageBrush&gt;
&lt;/Border.Background&gt;
&lt;/Border&gt;</code></pre>
<h4>6. 几何画刷(DrawingBrush)</h4>
<p><strong>描述</strong>: 使用几何图形填充区域。</p>
<pre><code class="language-xml">&lt;Border Width=&quot;180&quot; Height=&quot;180&quot; CornerRadius=&quot;90&quot;&gt;
&lt;Border.Background&gt;
&lt;DrawingBrush&gt;
&lt;DrawingBrush.Drawing&gt;
&lt;GeometryDrawing Brush=&quot;Yellow&quot;&gt;
&lt;GeometryDrawing.Pen&gt;
&lt;Pen Thickness=&quot;1&quot; Brush=&quot;red&quot;&gt;&lt;/Pen&gt;
&lt;/GeometryDrawing.Pen&gt;
&lt;GeometryDrawing.Geometry&gt;
&lt;GeometryGroup&gt;
&lt;LineGeometry StartPoint=&quot;0 0&quot; EndPoint=&quot;20 20&quot;&gt;&lt;/LineGeometry&gt;
&lt;LineGeometry StartPoint=&quot;20 40&quot; EndPoint=&quot;70 120&quot;&gt;&lt;/LineGeometry&gt;
&lt;/GeometryGroup&gt;
&lt;/GeometryDrawing.Geometry&gt;
&lt;/GeometryDrawing&gt;
&lt;/DrawingBrush.Drawing&gt;
&lt;/DrawingBrush&gt;
&lt;/Border.Background&gt;
&lt;/Border&gt;</code></pre>
<h4>7. Visual画刷(VisualBrush)</h4>
<p><strong>描述</strong>: 使用现有的Visual实现与其类似的内容填充区域。</p>
<pre><code class="language-xml">&lt;TextBlock Height=&quot;80&quot; Width=&quot;120&quot; Name=&quot;tb&quot; Text=&quot;120&quot;&gt;&lt;/TextBlock&gt;
&lt;Border Height=&quot;80&quot; Width=&quot;120&quot; RenderTransformOrigin=&quot;0.5 0.5&quot;&gt;
&lt;Border.Background&gt;
&lt;VisualBrush Visual=&quot;{Binding ElementName=tb}&quot;&gt;&lt;/VisualBrush&gt;
&lt;/Border.Background&gt;
&lt;Border.RenderTransform&gt;
&lt;RotateTransform Angle=&quot;180&quot;&gt;&lt;/RotateTransform&gt;
&lt;/Border.RenderTransform&gt;
&lt;/Border&gt;</code></pre>
<h4>8. 位图缓存画刷(BitmapCacheBrush)</h4>
<p><strong>描述</strong>: 使用位图缓存进行优化后的显示。</p>
<pre><code class="language-xml">&lt;Border Width=&quot;180&quot; Height=&quot;180&quot; CornerRadius=&quot;90&quot;&gt;
&lt;Border.Background&gt;
&lt;BitmapCacheBrush Target=&quot;{Binding ElementName=tb}&quot;&gt;
&lt;BitmapCacheBrush.BitmapCache&gt;
&lt;BitmapCache RenderAtScale=&quot;10&quot;&gt;&lt;/BitmapCache&gt;
&lt;/BitmapCacheBrush.BitmapCache&gt;
&lt;/BitmapCacheBrush&gt;
&lt;/Border.Background&gt;
&lt;/Border&gt;</code></pre>
<hr />