Silverlight图形:几何图形

什么是 Geometry?

Geometry 对象(如 EllipseGeometry、PathGeometry 和 GeometryGroup)可以用于描绘 二维 (2-D) 形状的几何图形。这些几何图形的描绘具有许多用途,例如,定义一个要绘制到 屏幕的形状或者定义剪辑区域。Geometry 对象可以很简单(如矩形和圆),也可以是基于两 个或更多个 Geometry 对象创建的复合形状。使用 PathGeometry 对象可以创建更复杂的几 何图形,这些对象可用于描绘弧线和曲线。

Geometry 与 Shape 的比较

Geometry 和 Shape 类的相似之处在于它们均描绘二维形状(例如,比较 EllipseGeometry 和 Ellipse),但它们之间也存在一些重要的区别。例如,Shape 对象是 UIElement 对象,而 Geometry 对象不是。因为是 UIElement 对象,所以 Shape 对象可以 进行自我呈现并具有 Opacity、OpacityMask 以及 Geometry 对象所没有的其他图形属性。 尽管 Shape 对象比 Geometry 对象更易于使用,但 Geometry 对象更通用。

一个 Shape(Path 类)使用 Geometry 来描绘内容。通过使用 Geometry 设置 Path 的 Data 属性以及设置它的 Fill 和 Stroke 属性,可以呈现 Geometry。

采用 Geometry 的常见属性

下表列出了采用 Geometry 对象的一些属性。

类型 属性
Path Data
UIElement Clip

简单的几何图形类型

Geometry 对象可以分为三个类别:简单几何图形、路径几何图形以及复合几何图形。

简单的几何图形类包括 LineGeometry、RectangleGeometry 和 EllipseGeometry,用于 创建基本的几何形状,如直线、矩形和圆。

LineGeometry 通过指定直线的起点和终点来定义。

RectangleGeometry 通过使用 Rect 结构来定义,该结构指定矩形的相对位置、高度和宽 度。您可以通过设置 RadiusX 和 RadiusY 属性来创建圆角矩形。

EllipseGeometry 通过中心点、x 半径和 y 半径来定义。

尽管可以通过使用 PathGeometry 或通过将 Geometry 对象组合在一起来创建这些形状以 及更复杂的形状,但是简单几何图形类提供了一种生成这些基本几何形状的简单方式。

下面的示例演示如何创建并呈现 LineGeometry。前面已提到,Geometry 对象无法进行自 我绘制,因此本示例使用 Path 形状来呈现直线。因为直线没有面积,设置 Path 的 Fill 属性没有任何效果;因此仅指定 Stroke 和 StrokeThickness 属性。

XAML

<Canvas Width="200" Height="200">
  <Path Stroke="Black" StrokeThickness="1" >
   <Path.Data>
    <LineGeometry StartPoint="10,20" EndPoint="100,130" />
   </Path.Data>
  </Path>
</Canvas>

时间: 2024-08-03 18:33:47

Silverlight图形:几何图形的相关文章

Silverlight图形:路径标记语法

先决条件 您应当熟悉 Geometry 对象的基本功能. 路径 Mini-Language Silverlight 提供了可以将几何路径描述为 XAML 中的属性值的 mini-language.当您在 设置类型 Geometry 的属性(如 UIElement 的 Clip 属性或 Path 元素的 Data 属性)时, 就会使用这种 mini-language.下面的示例使用路径属性语法来创建形状. XAML <Canvas> <Path Stroke="Black&quo

Silverlight图形:变换

您可以在 Silverlight 中使用二维 (2-D) Transform 类来旋转.按比例缩放.扭曲和移 动(平移)对象.下面的示例应用了可以旋转和扭曲一行文本的变换. XAML <StackPanel> <TextBlock FontSize="28" Text="Hello"> <TextBlock.RenderTransform> <TransformGroup> <RotateTransform An

Silverlight图形:三维效果(透视转换)

您可以使用"透视转换"来将三维效果应用于任何 Silverlight UIElement.例如,您可以 制造这样一个假象,即对象朝向您或远离您进行旋转,如下图中所示. 使用透视转换的图像 尽管上图中显示了应用于一个简单图像的透视转换,但您可以将透视转换应用于 UIElement,包括控件.例如,您可以将该效果应用于 Grid,而后者又包含 TextBox 和 Button.尽管旋转这些控件,但用户可以在 TextBox 中键入内容并单击 Button(假定这些 控件可见). 使用透视转

Silverlight图形:图像处理

创建图像 为了呈现图像,您可以使用 Image 或 ImageBrush 对象.下面的示例演示如何创建图像 . XAML <Image Source="myPicture.png" /> VB Dim myImage As Image = New Image myImage.Source = New BitmapImage(New Uri("myPicture.jpg", UriKind.RelativeOrAbsolute)) LayoutRoot.C

Silverlight图形:像素着色器效果

使用像素着色器效果可以向呈现的对象添加效果,如灰度.红眼消除.像素亮度和阴影.像素着色器效果使用算法来更改显示像素的方式.例如,下图显示应用于某一按钮的投影. 您可以使用 Silverlight 运行时附带的像素着色器效果,也可以自己创建. 说明: Silverlight 中的像素着色器效果以软件方式呈现.任何应用效果的对象也都将以软件方式呈现.对大型可视对象应用效果或对效果的属性进行动画处理时,性能的降低程度最大.因此,使用效果时应谨慎并进行充分的测试,以确保您的用户获得的体验和您预期的一样.

Silverlight图形

使用纯色绘制区域 在任何平台上,最常见的一个操作就是使用纯色绘制区域. 为了实现此任务 ,Silverlight 提供了 SolidColorBrush 类. 以下各节介绍使用 SolidColorBrush 进行绘制的不同方式. 若要在 XAML 中用纯色绘制区域,请使用以下选项之一: 按名称选择一个预定义的 SolidColorBrush. 例如,可以将 Rectangle 的 Fill 设置为"Red"或"MediumBlue". 该示例使用预定义 Solid

Silverlight图形:VideoBrush概述

先决条件 由于 VideoBrush 依赖 MediaElement 对象来提供视频流,您应该了解如何创建 MediaElement 并使用它打开媒体文件. 什么是 VideoBrush? VideoBrush 是一种类似于 LinearGradientBrush 或 ImageBrush 的 Brush 对象.但是 ,该对象使用视频内容而不是渐变或图像来绘制区域.这些视频内容通过 MediaElement 提 供.与其他画笔类型类似,您可以使用 VideoBrush 来绘制 Rectangle

Silverlight 图形:如何裁剪对象

可以通过裁剪掉对象的某个显示区域来裁剪对象.这是使用 Clip 属性来完成的.将此属 性设置为 Geometry,这意味着可以从对象中裁剪掉各种几何形状(例如,椭圆.直线或复杂 路径). 说明: 创建裁剪效果的另一种方法是通过使用渐变来应用 OpacityMask.因为您使用的是 Opacity 属性,因此可以在裁剪中创建"模糊边缘". 下面的示例演示如何从矩形中裁剪掉椭圆形(圆形)区域.为了从概念上描述此示例,请 考虑下图中的矩形. 一个矩形 下图显示了一个半径为 50.中心位于 2

学Silverlight 2系列(26):基本图形

本文将简单介绍Silverlight中的基本图形,主要有Line.Ellipse. Rectangle.Path.Polygon.Polyline六种,它们之间的继承关系如下所示: 在Silverlight中,所有的图形几乎都具有如下几个重要的属性: Stroke:对边框线填充 StrokeThickness:边框线的宽度 Fill:对图形进行填充 Line Line顾名思义,在两点之间画出一条直线,需要指定起始点(X1.Y1)和终 结点(X2.Y2)的坐标.如下面的例子: <Canvas Ba