日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

Windows Phone开发(32):路径之PathGeometry 转:http://blog.csdn.net/tcjiaan/article/details/7469512...

發(fā)布時(shí)間:2025/3/20 windows 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows Phone开发(32):路径之PathGeometry 转:http://blog.csdn.net/tcjiaan/article/details/7469512... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

說(shuō)起路徑這玩意兒,其實(shí)說(shuō)的就是Path類,它藏在命名空間System.Windows.Shapes下,應(yīng)該好找,它有一個(gè)很重要的屬性Data,你不妨在“對(duì)象瀏覽器”中把它抓出來(lái)看看,該屬性為System.Windows.Media.Geometry類型,如果大家再查看一下,這個(gè)Geometry類是一個(gè)抽象類,就是因?yàn)樗橄罅?#xff0c;所以不能被實(shí)例化。

然后,我們看看它有哪些派生類?

1、EllipseGeometry:好理解吧,一個(gè)幾何圖形,啥形狀的?圓 or 橢圓。

2、LineGeometry:這個(gè)家伙直來(lái)直去的,你更明白了,一條線的幾何圖形,兩點(diǎn)一線啊。

3、RectangleGeometry:這個(gè)也好說(shuō),二維矩形。

4、PathGeometry:這個(gè)東東就有些個(gè)復(fù)雜了,它可以由弧線,曲線、直線、橢圓、矩形等組成的復(fù)雜路徑。

?5、GeometryGroup:如果上述幾何圖形滿足不了你貪婪的需求的話,不妨試試這個(gè),它可以把上述的各種幾何圖形組合成一個(gè)幾何圖形。

?

平常人們總喜歡從易到難地去說(shuō)明問(wèn)題,那么今天我們何不反過(guò)來(lái)試試,從難到易地去學(xué)習(xí),如何?

在以上所列之圖形中,當(dāng)數(shù)PathGeometry最復(fù)雜,我們就拿它開刀,好不?只要把它干倒了,其實(shí)的就好學(xué)了。

首先,我們來(lái)看一看PathGeometry的結(jié)構(gòu)再說(shuō)吧。它包含一個(gè)Figures集合,而集合中每個(gè)元素都是一個(gè)PathFigure對(duì)象。然后,再往下拆,PathFigure類也有個(gè)集合屬性Segments,該集合中的每個(gè)元素為PathSegment對(duì)象,但我們從“對(duì)象瀏覽器”中看到,PathSegment是一個(gè)抽象類,所以我們要繼續(xù)往下找到它的派生類。

PathSegment類的派生如下圖所示:

接下來(lái),我們逐個(gè)演示一個(gè)它們的用法吧。

?

一、ArcSegment畫弧線

?該類表示一個(gè)圓,IsLargeArc屬性指示圓弧是否大于180度,Point是圓弧的終點(diǎn),Size是圓弧的大小……其實(shí)這些屬性不必要一個(gè)個(gè)介紹,大家有興趣自己玩一下就知道了,下面給出一個(gè)例子。

[html]?view plaincopyprint?
  • <Grid>??
  • ????<Path?HorizontalAlignment="Stretch"??
  • ??????????VerticalAlignment="Stretch"??
  • ??????????Stroke="{StaticResource?grBrush}"??
  • ??????????StrokeThickness="12">??
  • ????????<Path.Data>??
  • ????????????<PathGeometry>??
  • ????????????????<PathFigure?StartPoint="325,190">??
  • ????????????????????<ArcSegment?IsLargeArc="True"?Point="365,410"?Size="100,200"?/>??
  • ????????????????</PathFigure>??
  • ????????????</PathGeometry>??
  • ????????</Path.Data>??
  • ????</Path>??
  • </Grid>??
  • ?

    運(yùn)行效果


    ?

    ?

    ?二、三次貝塞爾曲線

    BezierSegment類具有兩個(gè)控制點(diǎn)和一個(gè)終點(diǎn),如下面例子:

    [html]?view plaincopyprint?
  • <Grid>??
  • ????<Path?HorizontalAlignment="Stretch"?VerticalAlignment="Stretch"?StrokeThickness="8"?Stroke="{StaticResource?grBrush}">??
  • ????????<Path.Data>??
  • ????????????<PathGeometry>??
  • ????????????????<PathFigure?StartPoint="28,17">??
  • ????????????????????<BezierSegment?Point1="250,25"?Point2="-100,245"?Point3="300,450"/>??
  • ????????????????</PathFigure>??
  • ????????????</PathGeometry>??
  • ????????</Path.Data>??
  • ????</Path>??
  • </Grid>??

  • ?運(yùn)行效果如下圖所示。

    ?

    ?

    三、兩點(diǎn)一線LineSegment

    這個(gè)就更簡(jiǎn)單了。

    [html]?view plaincopyprint?
  • <Grid>??
  • ????<Path?HorizontalAlignment="Stretch"?VerticalAlignment="Stretch"?Stroke="{StaticResource?grBrush}"?StrokeThickness="8">??
  • ????????<Path.Data>??
  • ????????????<PathGeometry>??
  • ????????????????<PathFigure?StartPoint="15,35">??
  • ????????????????????<LineSegment?Point="120,245"/>??
  • ????????????????????<LineSegment?Point="370,385"/>??
  • ????????????????</PathFigure>??
  • ????????????</PathGeometry>??
  • ????????</Path.Data>??
  • ????</Path>??
  • </Grid>??

  • 運(yùn)行效果如下圖所示:

    ?

    ?

    四、更復(fù)雜的三次貝賽爾曲線PolyBezierSegment

    這個(gè)家伙與前面說(shuō)的三次貝賽爾曲線相似,但可以定義一條或多條,Points集合中每三個(gè)點(diǎn)確定一段貝賽爾曲線。

    [html]?view plaincopyprint?
  • <Grid>??
  • ????<Path?HorizontalAlignment="Stretch"?VerticalAlignment="Stretch"?StrokeThickness="8"?Stroke="{StaticResource?grBrush}">??
  • ????????<Path.Data>??
  • ????????????<PathGeometry>??
  • ????????????????<PathFigure?StartPoint="250,38">??
  • ????????????????????<PolyBezierSegment>??
  • ????????????????????????<PolyBezierSegment.Points>??
  • ????????????????????????????<Point?X="16"?Y="75"/>??
  • ????????????????????????????<Point?X="300"?Y="100"/>??
  • ????????????????????????????<Point?X="92"?Y="134"/>??
  • ????????????????????????????<Point?X="45"?Y="200"/>??
  • ????????????????????????????<Point?X="23"?Y="280"/>??
  • ????????????????????????????<Point?X="358"?Y="460"/>??
  • ????????????????????????</PolyBezierSegment.Points>??
  • ????????????????????</PolyBezierSegment>??
  • ????????????????</PathFigure>??
  • ????????????</PathGeometry>??
  • ????????</Path.Data>??
  • ????</Path>??
  • </Grid>??

  • 運(yùn)行效果如圖所示。

    ?

    ?

    五、多線段集合PolyLineSegment

    與前面所說(shuō)的線不同的是,它可以包含多條線。

    [html]?view plaincopyprint?
  • <Grid>??
  • ????<Path?HorizontalAlignment="Stretch"?VerticalAlignment="Stretch"?StrokeThickness="8"?Stroke="{StaticResource?grBrush}">??
  • ????????<Path.Data>??
  • ????????????<PathGeometry>??
  • ????????????????<PathFigure?StartPoint="111,32">??
  • ????????????????????<LineSegment?Point="79,133"/>??
  • ????????????????????<LineSegment?Point="122,298"/>??
  • ????????????????????<LineSegment?Point="365,277"/>??
  • ????????????????????<LineSegment?Point="22,399"/>??
  • ????????????????????<LineSegment?Point="380,458"/>??
  • ????????????????</PathFigure>??
  • ????????????</PathGeometry>??
  • ????????</Path.Data>??
  • ????</Path>??
  • </Grid>??

  • 運(yùn)行效果如下圖所示。

    ?

    ?

    ?

    六、復(fù)合二次貝賽爾曲線PolyQuadraticBezierSegment

    該復(fù)合曲線可包含一或N多個(gè)二次貝賽爾曲線,由于二次貝賽爾曲線只有一個(gè)控制點(diǎn)和終點(diǎn),故Points是每?jī)蓚€(gè)點(diǎn)決定一條貝賽爾曲線。

    [html]?view plaincopyprint?
  • <Grid>??
  • ????<Path?VerticalAlignment="Stretch"?HorizontalAlignment="Stretch"?StrokeThickness="8"?Stroke="{StaticResource?grBrush}">??
  • ????????<Path.Data>??
  • ????????????<PathGeometry>??
  • ????????????????<PathFigure?StartPoint="20,25">??
  • ????????????????????<PolyQuadraticBezierSegment??Points="96,111?137,60?220,250?330,420"/>??
  • ????????????????</PathFigure>??
  • ????????????</PathGeometry>??
  • ????????</Path.Data>??
  • ????</Path>??
  • </Grid>??

  • 運(yùn)行效果如下圖所示。

    ?

    ?

    ?

    七、兩點(diǎn)決定一條二次貝賽爾曲線QuadraticBezierSegment

    這個(gè)相信比上面那個(gè)好理解。

    [html]?view plaincopyprint?
  • <Grid>??
  • ????<Path?HorizontalAlignment="Stretch"?VerticalAlignment="Stretch"?StrokeThickness="8"?Stroke="{StaticResource?grBrush}">??
  • ????????<Path.Data>??
  • ????????????<PathGeometry>??
  • ????????????????<PathFigure?StartPoint="200,25">??
  • ????????????????????<QuadraticBezierSegment?Point1="10,300"?Point2="385,435"/>??
  • ????????????????</PathFigure>??
  • ????????????</PathGeometry>??
  • ????????</Path.Data>??
  • ????</Path>??
  • </Grid>??
  • 運(yùn)行效果如下圖所示。

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/songtzu/archive/2012/07/24/2607118.html

    總結(jié)

    以上是生活随笔為你收集整理的Windows Phone开发(32):路径之PathGeometry 转:http://blog.csdn.net/tcjiaan/article/details/7469512...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。