一、Geometry:
简单几何图形包括LineGeometry、RectangleGeometry 和 EllipseGeometry,用于创建基本的几何形状,如直线、矩形和圆。
- LineGeometry 通过指定直线的起点和终点来定义。
- RectangleGeometry 通过使用 Rect 结构来定义,该结构指定矩形的相对位置、高度和宽度。您可以通过设置 RadiusX 和RadiusY 属性来创建圆角矩形。
- EllipseGeometry 通过中心点、x 半径和 y 半径来定义。
二、Path
路径几何图形PathGeometry是PathFigure对象的集合,每个PathFigure由一个或多个PathSegment对象组成,每个对象描绘图形的一条线段。
- ArcSegment:在两个点之间创建一个椭圆弧线。
- BezierSegment:在两个点之间创建一条三次方贝塞尔曲线。
- LineSegment:两个点之间创建一条直线。
- PolyBezierSegment:创建一系列三次方贝赛尔曲线。
- PolyLineSegment:创建一系列直线。
- PolyQuadraticBezierSegment:创建一系列二次贝塞尔曲线。
- QuadraticBezierSegment:创建一条二次贝塞尔曲线。
三、Transforms
Transform定义如何将一个坐标空间的点映射或变换到另一个坐标空间。映射由Matrix来(三行三列的Double集合)描述。
矩阵结构:M11,M12 M21,M22 OffsetX,OffsetY.默认值都为0。
变换类:
- RotateTransform:指定Angle旋转元素,默认旋转为(0,0),用CenterX,CenterY改变旋转点。
- ScaleTransform:按指定的ScaleX和ScaleY量按比例缩放元素。
- SkewTransform:按指定的AngleX和AngleY量扭曲元素。
- TranslateTransform:按指定的X和Y变量移动元素。
四、3DEffects
- RotationX 属性指定围绕对象的水平轴旋转。
- RotationY 属性围绕旋转中心的 y 轴旋转。
- RotationZ 属性围绕旋转中心的 z 轴(直接穿过对象平面的直线)旋转。
- GlobalOffsetX 沿屏幕对齐的 x 轴平移对象。
- GlobalOffsetY 沿屏幕对齐的 y 轴平移对象。
- GlobalOffsetZ 沿屏幕对齐的 z 轴平移对象。
Geometry.xaml:
< UserControl x:Class ="GeoMetry.MainPage"
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/2008xmlns:mc ="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable ="d" d:DesignWidth ="640" d:DesignHeight ="480" >
< Canvas HorizontalAlignment ="Left" VerticalAlignment ="Top" Width ="500" Height ="400"Background ="Wheat" >
< Path Stroke ="Black" StrokeThickness ="1" >
< Path.Data >
< LineGeometry StartPoint ="10,10" EndPoint ="80,150" />
</ Path.Data >
</ Path >
< Path Fill ="Red" Stroke ="Black" StrokeThickness ="2" >
< Path.Data >
< EllipseGeometry Center ="150,80" RadiusX ="50" RadiusY ="50" />
</ Path.Data >
</ Path >
< Path Fill ="Gold" Stroke ="Blue" StrokeThickness ="2" >
< Path.Data >
< RectangleGeometry Rect ="10,150,50,50" />
</ Path.Data >
</ Path >
<!--
简单几何图形包括LineGeometry、RectangleGeometry 和 EllipseGeometry,用于创建基本的几何形状,如直线、矩形和圆。
LineGeometry 通过指定直线的起点和终点来定义。
RectangleGeometry 通过使用 Rect 结构来定义,该结构指定矩形的相对位置、高度和宽度。您可以通过设置 RadiusX 和 RadiusY 属性来创建圆角矩形。
EllipseGeometry 通过中心点、x 半径和 y 半径来定义。
-->
< Path Stroke ="Green" StrokeThickness ="2" >
< Path.Data >
< PathGeometry >
< PathGeometry.Figures >
< PathFigure StartPoint ="20,180" >
< PathFigure.Segments >
< LineSegment Point ="80,270" />
< BezierSegment Point1 ="130,180" Point2 ="190,250" Point3 ="300,170" />
< ArcSegment Size ="100,100" RotationAngle ="45" IsLargeArc ="True"
SweepDirection ="Counterclockwise" Point ="20,180" />
</ PathFigure.Segments >
</ PathFigure >
</ PathGeometry.Figures >
</ PathGeometry >
</ Path.Data >
</ Path >
<!--
路径几何图形PathGeometry是PathFigure对象的集合,每个PathFigure由一个或多个PathSegment对象组成,每个
对象描绘图形的一条线段。
ArcSegment:在两个点之间创建一个椭圆弧线
BezierSegment:在两个点之间创建一条三次方贝塞尔曲线
LineSegment:两个点之间创建一条直线
PolyBezierSegment:创建一系列三次方贝赛尔曲线
PolyLineSegment:创建一系列直线
PolyQuadraticBezierSegment:创建一系列二次贝塞尔曲线
QuadraticBezierSegment:创建一条二次贝塞尔曲线
-->
< Path Stroke ="Black" StrokeThickness ="1" Fill ="#CCCCFF" >
< Path.Data >
< GeometryGroup FillRule ="EvenOdd" >
< LineGeometry StartPoint ="10,10" EndPoint ="50,30" />
< EllipseGeometry Center ="40,70" RadiusX ="30" RadiusY ="30" />
< RectangleGeometry Rect ="30,55 100 30" />
</ GeometryGroup >
</ Path.Data >
</ Path >
</ Canvas >
</ UserControl >
运行效果:
Transforms.xaml:
< Canvas Background ="AliceBlue" Width ="500" Height ="400" HorizontalAlignment ="Left" VerticalAlignment ="Top" >
< Rectangle Width ="50" Height ="50" Fill ="Red" Margin ="5,5,5,5" >
< Rectangle.RenderTransform >
< RotateTransform Angle ="30" CenterX ="20" CenterY ="20" />
</ Rectangle.RenderTransform >
</ Rectangle >
< Rectangle Width ="50" Height ="50" Fill ="Green" Margin ="5,5,5,5" Canvas.Left ="75" >
< Rectangle.RenderTransform >
< ScaleTransform ScaleX ="0.8" ScaleY ="0.7" />
</ Rectangle.RenderTransform >
</ Rectangle >
< Rectangle Width ="50" Height ="50" Fill ="Gray" Margin ="5,5,5,5" Canvas.Left ="150" >
< Rectangle.RenderTransform >
< SkewTransform AngleX ="15" AngleY ="20" />
</ Rectangle.RenderTransform >
</ Rectangle >
<!--
Transform定义如何将一个坐标空间的点映射或变换到另一个坐标空间。映射由Matrix来(三行三列的Double集合)描述。
矩阵结构:M11,M12 M21,M22 OffsetX,OffsetY.默认值都为0
变换类:
RotateTransform:指定Angle旋转元素,默认旋转为(0,0),用CenterX,CenterY改变旋转点
ScaleTransform:按指定的ScaleX和ScaleY量按比例缩放元素
SkewTransform:按指定的AngleX和AngleY量扭曲元素
TranslateTransform:按指定的X和Y变量移动元素
-->
</ Canvas >
运行效果:
3DEffects.xaml:
< Canvas Background ="AliceBlue" Width ="500" Height ="400" HorizontalAlignment ="Left" VerticalAlignment ="Top" >
< StackPanel Canvas.Left ="5" Canvas.Top ="5" >
< StackPanel.Projection >
< PlaneProjection RotationX ="0" RotationY ="-60" />
</ StackPanel.Projection >
< Image Source ="1.JPG" Width ="150" Height ="120" />
</ StackPanel >
< StackPanel Canvas.Left ="155" Canvas.Top ="5" >
< StackPanel.Projection >
< PlaneProjection RotationX ="-60" />
</ StackPanel.Projection >
< Image Source ="2.JPG" Width ="150" Height ="120" />
</ StackPanel >
< StackPanel Canvas.Left ="320" Canvas.Top ="5" >
< StackPanel.Projection >
< PlaneProjection RotationX ="0" RotationY ="60" />
</ StackPanel.Projection >
< Image Source ="3.JPG" Width ="150" Height ="120" />
</ StackPanel >
<!--
RotationX 属性指定围绕对象的水平轴旋转
RotationY 属性围绕旋转中心的 y 轴旋转。
RotationZ 属性围绕旋转中心的 z 轴(直接穿过对象平面的直线)旋转
GlobalOffsetX 沿屏幕对齐的 x 轴平移对象。
GlobalOffsetY 沿屏幕对齐的 y 轴平移对象。
GlobalOffsetZ 沿屏幕对齐的 z 轴平移对象。
-->
</ Canvas >
运行效果: