国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

WPF學習05:2D繪圖使用Transform進行控件變形

2019-11-14 16:05:00
字體:
來源:轉載
供稿:網友

    在WPF學習04:2D繪圖 使用Shape繪基本圖形中,我們了解了如何繪制基本的圖形。

    這一次,我們進一步,研究如何將圖形變形。

例子

    一個三角形,經Transform形成組合圖形:

   image_thumb3 image_thumb2[1]

    XAML代碼:

 

    C#代碼:


 

Shape簡介

   WPF提供了Transform類,使我們得以對控件進行變形操作。

   Transform提供了TranslateTransform(平移變形) RotateTransform(旋轉變形) ScaleTransform(縮放變形) SkewTransform(扭曲變形) MatrixTransform(矩陣變換變形)

   回顧一下Shape的繼承結構:

    image_thumb31

   UIElement提供了RenderTransform

    image_thumb11

    FrameworkElement提供了LayoutTransform

    image_thumb9[1]

    兩者皆為Transform類型的屬性,本文將逐個介紹各類變形的使用方法,最后將說明這兩種Transform的區別。


 

TranslateTransform:

    image_thumb1

    XAML實現:

 

    后臺代碼實現:


 

RotateTransform

 

   image_thumb2

   XAML實現:

    后臺代碼實現:

     注意,這里通過設置CenterX CenterY配置旋轉的參考中心點,改點默認為(0, 0)


 

ScaleTransform

    image_thumb4

    XAML實現:

    后臺代碼實現參考之前的代碼,類似。


 

SkewTransform

   image_thumb5

    XAML實現:

    后臺代碼實現參考之前的代碼,類似。


 

MatrixTransform

   

    圖形變換的本質都是將各個點,映射到一個齊次坐標系,然后乘上一個3X3的矩陣進行變換。

    詳細的內容這本書介紹的比較全:image_thumb6

    這里只實現一個簡單的矩陣實現平移:

    image_thumb7

     實現代碼:


 

RenderTransform與LayoutTransform

    對于Canvas這樣使用絕對定位的Layout控件下的變形操作,兩者的效果是一致的。

    而在其它的布局控件中,LayoutTransform是會影響到布局的。

    例子:image_thumb8

    XAML代碼:

    我們將LayoutTransform改為RenderTransform,結果如下:

    image_thumb9


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 威远县| 静海县| 雷州市| 河北区| 汉川市| 镶黄旗| 都兰县| 蕲春县| 新密市| 浦江县| 蒙阴县| 龙山县| 乌拉特中旗| 宁河县| 丹巴县| 安吉县| 金塔县| 林州市| 梁平县| 蕲春县| 金堂县| 南宁市| 蒲江县| 台南县| 灌南县| 山东省| 荔波县| 修文县| 庆阳市| 营山县| 睢宁县| 汾西县| 玛多县| 兰考县| 温泉县| 吴堡县| 淳化县| 泽普县| 荥经县| 丹巴县| 随州市|