【WPF】绘图--《深入浅出WPF》by刘铁锰

本文详细介绍了WPF中的基本图形绘制,包括直线、矩形、椭圆、多边形、路径及其使用。重点讲述了Path的PathGeometry属性,以及如何利用Path裁剪界面元素,实现不规则形状的设计。同时,提到了各种填充样式如实心、线性渐变、径向渐变和图像填充。
摘要由CSDN通过智能技术生成

 WPF的基本图形包括以下几类(都是Shape类的派生类):

  • Line:直线段,可以设置其笔触(Stroke)
  • Rectangle:矩形,既有笔触,又有填充(Fill)
  • Elippse:椭圆。既有笔触,又有填充
  • Polygon:多边形。既有笔触,又有填充
  • Polyline:折线(不闭合),多条收尾相接的直线段组成
  • Path:路径(闭合区域),可由若干直线、圆弧、贝塞尔曲线等基本元素组成

1、直线

直线是最简单的图形,使用X1,Y1两个属性设置起点坐标,使用X2,Y2两个属性设置终点坐标。Stroke属性的数据类型是Brush,凡是Brush的派生类都可以用于为这个属性赋值。

使用各种画刷填充矩形的综合实例:

<Window x:Class="Demo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Demo"
        mc:Ignorable="d"
        Title="MainWindow" Height="260" Width="280">
    <Grid>
        <!--Stroke:边框绘制方式,默认值为null-->
        <Line X1="10" Y1="20" X2="260" Y2="20" Stroke="Red" StrokeThickness="10"/>
        <Line X1="10" Y1="40" X2="260" Y2="40" Stroke="Red" StrokeThickness="5"/>
        <!--StrokeDashArray:虚线轮廓和间隙的模式-->
        <Line X1="10" Y1="60" X2="260" Y2="60" Stroke="Yellow" StrokeThickness="5" StrokeDashArray="3"/>
        <Line X1="10" Y1="80" X2="260" Y2="80" Stroke="Yellow" StrokeThickness="3" StrokeDashArray="5"/>
        <!--StrokeEndLineCap:获取或设置线的末端,默认值Flat
            StrokeDashCap:获取或设置线的末端,默认值Flat-->
        <Line X1="10" Y1="100" X2="260" Y2="100" Stroke="orange" StrokeThickness="10" StrokeEndLineCap="Flat"/>
        <Line X1="10" Y1="120" X2="260" Y2="120" Stroke="orange" StrokeThickness="10" StrokeEndLineCap="Round"/>
        <Line X1="10" Y1="140" X2="260" Y2="140" Stroke="orange" StrokeThickness="10" StrokeEndLineCap="Square"/>
        <Line X1="10" Y1="160" X2="260" Y2="160" Stroke="orange" StrokeThickness="10" StrokeEndLineCap="Triangle"/>
        <Line X1="10" Y1="160" X2="260" Y2="160" StrokeThickness="10" StrokeEndLineCap="Triangle">
            <Line.Stroke>
                <LinearGradientBrush EndPoint="0 0.5" StartPoint="1 0.5">
                    <GradientStop Color="Black"/>
                    <!--Offset:获取渐变向量中,渐变停止点的位置-->
                    <GradientStop Offset="1"/>
                </LinearGradientBrush>
            </Line.Stroke>
        </Line>
    </Grid>
</Window>

 

2、矩形

矩形的Fill属性的数据类型是Brush。Brush是抽象类,所以不能拿Brush类的实例为Fill属性赋值,只能使用其派生类的实例赋值。

WPF系统中包含了丰富的Brush类型,常用的有:

  • SolidColorBrush:实心画刷
  • LinearGradientBrush:线性渐变画刷。色彩沿设定的直线方向、按设定的变化点进行渐变
  • RadialGradientBrush:径向渐变画刷。色彩沿半径的方向、按设定的变化点进行渐变形成圆形填充
  • ImageBrush:使用图片ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值