Silverlight图形编程系列(六)-图形之Ellipse, Line, Path, Polygon, Polyline, Rectangle

Silverlight 2.0 图形:
    Ellipse - 椭圆
    Line - 线
    Path - 一系列相互连接的直线和曲线
    Polygon - 多边形,闭合图形,起点与终点自动相连
    Polyline - 非闭合图形,一串连接起来的线,起点与终点不会自动相连
    Rectangle - 矩形

 

 

1、Ellipse.xaml

<UserControl x:Class="Silverlight20.Shape.Ellipse"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <StackPanel HorizontalAlignment="Left">
        
        <!--椭圆-->
        <!--
        Width - 椭圆的宽
        Height - 椭圆的高
        Stroke - 边框
        StrokeThickness - 边框尺寸
        Fill - 填充
        -->
        <Ellipse Stroke="Red" Fill="Yellow" StrokeThickness="6" Width="100" Height="50"></Ellipse>
        
    </StackPanel>
</UserControl>

 


2、Line.xaml

 

<UserControl x:Class="Silverlight20.Shape.Line"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <StackPanel HorizontalAlignment="Left">
        
        <!--线-->
        <!--
        X1 - 起点的 X 坐标
        Y1 - 起点的 Y 坐标
        X2 - 终点的 X 坐标
        Y2 - 终点的 Y 坐标
        注:
            Line无填充,也就是Line的Fill属性无效
            坐标以左上角为原点,原点右侧/下侧为正方向
        -->
        <Line X1="0" Y1="100" X2="200" Y2="300" Stroke="Black" StrokeThickness="6" />
        
    </StackPanel>
</UserControl>



3、Path.xaml

<StackPanel HorizontalAlignment="Left">
        
        <!--绘制一系列相互连接的直线和曲线-->
        
        <!--
        Path.Data - 要绘制的形状的 Geometry
        -->
        <Path Fill="Yellow" Stroke="Red" StrokeThickness="6">
            <Path.Data>
                <!--椭圆-->
                <!--
                Center - 原点坐标
                RadiusX - X轴半径
                RadiusY - Y轴半径
                -->
                <EllipseGeometry Center="50,25" RadiusX="50" RadiusY="25" />
            </Path.Data>
        </Path>

        <Path Fill="Yellow" Stroke="Red" StrokeThickness="6">
            <Path.Data>
                <!--矩形-->
                <!--
                Rect - 矩形的点坐标,分别为:左侧线的X轴坐标,上侧线的Y轴坐标,矩形宽,矩形高
                -->
                <RectangleGeometry Rect="100,0,100,50" />
            </Path.Data>
        </Path>

        <Path Stroke="Red" StrokeThickness="6" >
            <Path.Data>
                <!--线-->
                <!--
                StartPoint - 起点坐标
                EndPoint - 终点坐标
                -->
                <LineGeometry StartPoint="200,0" EndPoint="300,100" />
            </Path.Data>
        </Path>
        
        <Path Stroke="Red" StrokeThickness="6">
            <Path.Data>
                <!--一个可能由弧、曲线、椭圆、直线和矩形组成的复杂图形-->
                <PathGeometry>
                    <PathGeometry.Figures>
                        <!--
                        StartPoint - 图形起点坐标
                        -->
                        <PathFigure StartPoint="300,0">
                            <!--
                            PathFigure.Segments - 待画线的类型
                            -->
                            <PathFigure.Segments>
                                <PathSegmentCollection>
                                    <!--
                                    LineSegment - 单一线段
                                    PolyLineSegment - 线段集合
                                    ArcSegment - 弧(椭圆的一部分)
                                    BezierSegment - 两点之间的一条三次贝塞尔曲线
                                    QuadraticBezierSegment - 两点之间的一条二次贝塞尔曲线
                                    PolyBezierSegment - 一条或多条三次贝塞尔曲线
                                    PolyQuadraticBezierSegment - 一条或多条二次贝塞尔曲线
                                    -->      
                                    <!--
                                    Size - 弧的X轴和Y轴半径
                                    Point - 该Segment的终点坐标,下一个Segment的起点坐标
                                    -->
                                    <ArcSegment Size="100,50" Point="400,100" />
                                    <!--
                                    Point - 该Segment的终点坐标,下一个Segment的起点坐标
                                    -->
                                    <LineSegment Point="500,200" />
                                </PathSegmentCollection>
                            </PathFigure.Segments>
                        </PathFigure>
                    </PathGeometry.Figures>
                </PathGeometry>
            </Path.Data>
        </Path>

        <Path Fill="Yellow" Stroke="Red" StrokeThickness="6">
            <Path.Data>
                <!--一个或多个Geometry-->
                <!--
                FillRule - 填充规则 [System.Windows.Media.FillRule枚举]
                    EvenOdd 和 Nonzero,详见MSDN
                -->
                <GeometryGroup FillRule="EvenOdd">
                    <LineGeometry StartPoint="200,0" EndPoint="300,100" />
                    <EllipseGeometry Center="250,50" RadiusX="50" RadiusY="50" />
                    <RectangleGeometry Rect="200, 0, 100, 100" />
                </GeometryGroup>
            </Path.Data>
        </Path>
        
    </StackPanel>


 4、Polygon.xaml

 
    <StackPanel HorizontalAlignment="Left">
        
        <!--多边形,闭合图形,起点与终点自动相连-->
        <!--
        Points - 构造路径所使用的点
            空格分隔点坐标,逗号分隔X轴和Y轴坐标
        -->
        <Polygon Points="0,0 100,0 300,100 200,100 100,200" Stroke="Red" StrokeThickness="6" Fill="Yellow" />
        
    </StackPanel>

 

5、Polyline.xaml

    <StackPanel HorizontalAlignment="Left">

        <!--非闭合图形,一串连接起来的线,起点与终点不会自动相连-->
        <!--
        Points - 构造路径所使用的点
            空格分隔点坐标,逗号分隔X轴和Y轴坐标
        -->
        <Polyline Points="0,0 100,0 300,100 200,100 100,200" Stroke="Red" StrokeThickness="6" Fill="Yellow" />
        
    </StackPanel>


 


 


<StackPanel HorizontalAlignment="Left">
        
        <!--多边形,闭合图形,起点与终点自动相连-->
        <!--
        Points - 构造路径所使用的点
            空格分隔点坐标,逗号分隔X轴和Y轴坐标
        -->
        <Polygon Points="0,0 100,0 300,100 200,100 100,200" Stroke="Red" StrokeThickness="6" Fill="Yellow" />
        
    </StackPanel>


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值