天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

一步一步學Silverlight :基本圖形

概述

Silverlight 2 Beta 1版本發布了,無論從Runtime還是Tools都給我們帶來了很多的驚喜,如支持框架語言Visual Basic, Visual C#, IronRuby, IronPython,對JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步學Silverlight 2系列》文章將從Silverlight 2基礎知識、數據與通信、自定義控件、動畫、圖形圖像等幾個方面帶您快速進入Silverlight 2開發。

本文將簡單介紹Silverlight中的基本圖形,主要有Line、Ellipse、Rectangle、Path、Polygon、Polyline六種,它們之間的繼承關系如下所示:

TerryLee_Silverlight2_0127

在Silverlight中,所有的圖形幾乎都具有如下幾個重要的屬性:

Stroke:對邊框線填充

StrokeThickness:邊框線的寬度

Fill:對圖形進行填充

 

Line

Line顧名思義,在兩點之間畫出一條直線,需要指定起始點(X1、Y1)和終結點(X2、Y2)的坐標。如下面的例子:

<Canvas Background="#CDFCAE">    <Line Canvas.Top="20" Canvas.Left="20"          X1="20" Y1="20" X2="400" Y2="20"          Stroke="#FF9900" StrokeThickness="4">    </Line>    <Line Canvas.Top="40" Canvas.Left="20"          X1="20" Y1="40" X2="200" Y2="180"          Stroke="#0099FF" StrokeThickness="5">    </Line>    <Line Canvas.Top="20" Canvas.Left="240"          X1="220" Y1="20" X2="220" Y2="200"          StrokeThickness="6">        <Line.Stroke>            <LinearGradientBrush StartPoint="0,0">                <GradientStop Color="#FFFFFF" Offset="0.0" />                <GradientStop Color="#307801" Offset="1.0" />            </LinearGradientBrush>        </Line.Stroke>    </Line></Canvas>

運行后如下所示,分別畫出三條直線:

TerryLee_Silverlight2_0120

Ellipse

Ellipse即橢圓形,如果設置長和高相等,畫出來將是圓形,主要的屬性還是前面說的那三個。如下面的示例:

<Canvas Background="#CDFCAE">    <Ellipse Canvas.Top="20" Canvas.Left="40"             Width="160" Height="80" Fill="#FF9900"             Stroke="Black" StrokeThickness="3">    </Ellipse>    <Ellipse Canvas.Top="20" Canvas.Left="260"             Width="180" Height="100">        <Ellipse.Fill>            <RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5"                RadiusX="0.5" RadiusY="0.5">                <GradientStop Color="#0099FF" Offset="0" />                <GradientStop Color="#FF0000" Offset="0.25" />                <GradientStop Color="#FCF903" Offset="0.75" />                <GradientStop Color="#3E9B01" Offset="1" />            </RadialGradientBrush>        </Ellipse.Fill>    </Ellipse>    <Ellipse Canvas.Top="120" Canvas.Left="160"             Width="100" Height="100" Fill="#FF9900"             Stroke="#000000" StrokeThickness="2">    </Ellipse></Canvas>

運行后如下所示,顯示三個橢圓形:

TerryLee_Silverlight2_0122

Rectangle

Rectangle看名稱就知道是矩形,設置長度和高度相等則為正方形,其主要的屬性還是開始我們提到的那三個,同時還可以通過RadiusX和RadiusY來設置它的圓角效果,看下面的例子:

<Canvas Background="#CDFCAE">    <Rectangle Canvas.Top="20" Canvas.Left="40"         Width="160" Height="80" Fill="#FF9900"         Stroke="Black" StrokeThickness="3">    </Rectangle>    <Rectangle Canvas.Top="20" Canvas.Left="260"         Width="180" Height="100">        <Rectangle.Fill>            <RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5"            RadiusX="0.5" RadiusY="0.5">                <GradientStop Color="#0099FF" Offset="0" />                <GradientStop Color="#FF0000" Offset="0.25" />                <GradientStop Color="#FCF903" Offset="0.75" />                <GradientStop Color="#3E9B01" Offset="1" />            </RadialGradientBrush>        </Rectangle.Fill>    </Rectangle>    <Rectangle Canvas.Top="120" Canvas.Left="120"         Width="100" Height="100"         Stroke="#000000" StrokeThickness="2" RadiusX="15" RadiusY="15">        <Rectangle.Fill>            <LinearGradientBrush StartPoint="0,1">                <GradientStop Color="#FFFFFF" Offset="0.0" />                <GradientStop Color="#FF9900" Offset="1.0" />            </LinearGradientBrush>        </Rectangle.Fill>    </Rectangle></Canvas>

運行后如下所示,其中有兩個加上了漸變效果:

TerryLee_Silverlight2_0123 

Path

相比較前面三個簡單的圖形來說,Path相對來說比較復雜,它用來畫出一系列的相連的圓弧或者線條,可以稱之為“軌跡”,使用它可以畫出任意復雜的形狀,主要通過Data屬性來展現。一個簡單的Path聲明示例如下:

<Canvas Background="#CDFCAE">    <Path Stroke="Orange" StrokeThickness="3"          Data="M 10,40 L 300,40 V 100 H 240 S 300,240 400,175">    </Path></Canvas>

運行后如下所示:

TerryLee_Silverlight2_0124

這里對Data做一下簡單的解釋,Silverlight提供了一種稱之為“迷你語言”的屬性句法,來描述如何畫出軌跡形狀,包括M(移動命令,起始點)、L(直線,結束點)、H(水平線)、V(垂直線)、C(三次貝塞爾曲線)、Q(兩次貝塞爾曲線)、A(橢圓弧曲線)、Z(結束命令)等。更為詳細的使用大家可以參考SDK。

Polygon

Polygon用來畫多邊形,需要用Points屬性來指定幾個特定的點,至于畫幾邊形,要看你定義幾個點了(要看救生員啥時救他—宋丹丹語錄),它會自動閉合。

<Canvas Background="#CDFCAE">    <Polygon Canvas.Left="50" Canvas.Top="50"             Points="50,20 300,20 300,160 200,160"             Stroke="Green" StrokeThickness="3" Fill="Orange">    </Polygon></Canvas>

每一個點之間用空格分開,運行后如下所示:

TerryLee_Silverlight2_0125

Polyline

Polyline用來畫多邊線,與上面的Polygon不同的地方是它不一定要是閉合的,同樣用Points屬性來指定幾個特定的點,我們定義一個跟上面的示例一樣的Polyline:

<Canvas Background="#CDFCAE">    <Polyline Canvas.Left="50" Canvas.Top="50"             Points="50,20 300,20 300,160 200,160"             Stroke="Green" StrokeThickness="3" Fill="Orange">    </Polyline></Canvas>

運行后可以看到,有一條邊未閉合:

TerryLee_Silverlight2_0126

結束語

本文內容比較簡單,介紹了Silverlight中的一些基本的圖形。

NET技術一步一步學Silverlight :基本圖形,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 狠狠色狠狠色综合系列 | av亚洲色天堂2017 | 色欲AV无码乱码精品国产 | 国产精品一国产精品免费 | 日本视频一区二区免费观看 | 2021国产精品国产精华 | 久草视频在线观看免费4 | 最近中文字幕免费高清MV视频 | 亚洲人精品午夜射精日韩 | 洲精品无码高潮喷水A片 | 日本黄色网站在线观看 | 午夜性爽视频男人的天堂在线 | 国产色精品久久人妻无码 | 一级做a爰片久久毛片一 | 色琪琪丁香婷婷综合久久 | 婷婷亚洲AV色香蕉蜜桃 | 黄色三级视频在线 | 最近的2019中文字幕国语完整版 | 亚洲综合色五月久久婷婷 | 伊人久久久久久久久久 | 嘟嘟嘟WWW免费高清在线中文 | 亚洲大片在线观看 | 囯产精品久久久久久久久蜜桃 | 精品AV无码一二三区视频 | 麻豆国产MV视频 | 中文字幕午夜乱理片 | 午夜伦理伦理片在线观 | 久久婷婷五月综合色情 | 男人插女人动态 | 青青app| 亚洲免费无l码中文在线视频 | se01国产短视频在线观看 | 成人在线观看国产 | 日本50人群体交乱 | A级毛片无码久久精品免费 a级毛片黄免费a级毛片 | 久久综合久久鬼色 | 国内精品免费久久影院 | 欧美国产日韩久久久 | 色呦呦导航 | OLDMAN老头456 TUBE | 欧美中文字幕一区二区三区 |