zoukankan      html  css  js  c++  java
  • Windows 8 应用商店应用开发 之 图形绘制(1)

    图形元素作为应用程序界面的基本组成部分,在程序开发过程中被普遍使用。本章将详细介绍绘制图形经常使用的ShapeGeometry两个类。Shape类及其子类用于绘制常见的图形,通过设置相关属性可以获得相应的图形效果。Geometry类及由其派生的其他类只是通过定义坐标点确定几何图形,并不会自我绘制,需要Path类辅助其呈现。通过在图形上使用画刷,可以为图形着色,使其变的美观进而对视觉产生冲击,因此本章还将介绍三种常用的画刷。学习本章内容将会对应用程序的界面开发有一定的帮助。

    8.1 简单图形

     Windows应用商店应用自带了一些绘制形状的类,Shape类及其子类就是其中的一部分。遵循逐渐深入的原则先介绍LineEllipseRectanglePolygonPolyline这几个Shape子类的使用,它们可以满足绘制简单形状的需求。在Shape子类中都拥有两个共同的属性StokeStrokeThickness,用于定义图形轮廓的颜色与粗细。下面将通过具体示例对Shape类及其子类进行详细介绍。

    8.1.1 线形

    线形没有内部空间,若要呈现一条直线,需要用Line对象的StrokeStrokeThickness 属性分别为其轮廓的颜色及轮廓的粗细赋值,若不设置这两个属性,线形将不会呈现。绘制一条线形图形应为代表两个点坐标的属性(X1Y1)和(X2Y2)赋值,默认这四项属性的值均为0,点(X1Y1)代表线的起点,点(X2Y2)代表线的终点。下面将演示如何绘制一条线形。

    在一个打开的Windows应用商店项目中新建一个空白页,并命名为LinePage,双击打开此页面的LinePage.xaml文件,在Grid元素中添加如下代码。

    <Line X2="200" Y2="200" Stroke="Red" StrokeThickness =”3”/>

    上面的代码使用Line元素绘制了一条颜色为红色、轮廓粗细为3像素的线,并且起点为(00)、终点为(200200),这里并没有定义起点而是使用了默认值。

    使用后台代码可以绘制同样的线段,并将线段添加到前台界面的容器控件中。下面的示例为LinePage.xaml文件中的Grid元素命名为MyCanvas,以便在后台代码中通过该名称来引用这个Grid实例。代码如下所示:

    <Grid Name="MyCanvas" Background="{StaticResource ApplicationPageBackgroundThemeBrush}">

    </Grid>

    绘制线的后台代码如下所示:

    public LinePage()

    {

        this.InitializeComponent();

        //初始化line的对象

        Line line = new Line();

        //终点X轴坐标

        line.X2 = 200;

        //终点Y轴坐标

        line.Y2 = 200;

        //用画刷对象赋值颜色

        line.Stroke = new SolidColorBrush(Colors.Red);

        //设置轮廓的粗细

        line.StrokeThickness=3;

    //将绘制的线形添加到名字为MyCanvas控件

        MyCanvas.Children.Add(line);

    上面的代码,通过在构造函数中使用Line类型的line对象绘制一个与使用前台方式实现效果相同的线形,并添加到名为MyCanvas的控件中Line类型定义在 Windows.UI.Xaml.Shapes命名空间中,在为line对象的Stroke属性赋值时,用到了Colors类,这个类由Windows.UI命名空间提供支持。

    运行此页面,显示效果如图8-1所示。

    坐标点(00

    坐标点(200200

    image

    8-1 线形运行效果图

    8.1.2 矩形

    若要绘制矩形需要用到Rectangle元素,通过指定Rectangle元素的WidthHeight属性值来确定矩形的尺寸。而设置RadiusXRadiusY属性值能得到圆角的矩形,这两个属性分别表示圆角的x轴方向和y轴方向圆角的大小,RadiusX允许的最大值为Width的一半,RadiusY允许最大的值为Height的一半。矩形有内部空间,若想获得有填充颜色的矩形,需要设置Fill属性为其填充颜色。下面将演示如何绘制一个矩形。

    在一个打开的Windows应用商店项目中新建一个空白页,并命名为RectanglePage,双击打开此页面的RectanglePage.xaml文件,在Grid元素中添加如下代码。

    <Rectangle Fill="Yellow" Width="196" Height="100" Stroke="Black" StrokeThickness="5" RadiusX="20" RadiusY="30"/>

    上面的代码定义了一个表示矩形的Rectangle元素,并设置其Width属性值为196Height属性值为100,使用Fill属性填充其内部空间为黄色,把Stroke属性设置为BlackStrokeThickness属性设置为5,定义一个轮廓颜色为黑色、轮廓粗细为5像素的矩形,再将此矩形的RadiusX属性设置为20RadiusY属性设置为30,最后得到一个圆角矩形。

    通过后台代码也能够绘制出与上面相同的矩形,实现代码如下所示:

    public RectanglePage()

    {

        this.InitializeComponent();

        //实例化矩形对象

        Rectangle rectangle = new Rectangle();

        rectangle.Width = 196;

        rectangle.Height = 100;

        rectangle.Fill = new SolidColorBrush(Colors.Yellow);

        rectangle.Stroke = new SolidColorBrush(Colors.Black);

        rectangle.StrokeThickness = 5;

    //圆角x轴赋值为20

        rectangle.RadiusX = 20; 

    //圆角x轴赋值为30

     rectangle.RadiusY = 30;

        MyCanvas.Children.Add(rectangle);

    在上面的代码中,首先实例化了一个Rectangle类型的对象rectangle,通过设置rectangle对象的相应属性以达到定义一个与前台方式实现效果一致的矩形,最后调用MyCanvas容器对象的Children属性中的Add方法,将这个矩形加入到页面中显示。

    启动此页面,显示效果如图8-2所示。

    边框的粗细为5像素

    X轴的圆角为20像素,y轴的圆角为30像素

    C20E16D4521A42359C10D182B3B13454

    8-2 矩形图形

    要想在矩形内部添加图形、控件等内容,可以考虑使用Border元素。与Rectangle元素有所不同的是,Border元素实现圆角效果需要用到CornerRadius属性,而不是之前Rectangle元素中所用到的RadiusXRadiusY属性,绘制一个在Border元素中包含两个矩形效果的XAML代码如下所示:

    <Border BorderBrush=" Black" BorderThickness="4" Width="120" Height="100"  CornerRadius="10" >

        <StackPanel Margin="3,3,3,3">

            <Rectangle Fill="Yellow" Height="40" Width="100"/>

            <Rectangle Fill="Blue" Height="40" Width="100" />

        </StackPanel>

    </Border>

    上面代码的运行效果如图8-3所示

    包含两个矩形的Border

    62DECB2C5DC746388C5747104D9186D6

     

    8-3包含两个矩形的Border效果图

    注:本文选自机械工业出版社3月出品的《Windows 8 应用开发权威指南》

  • 相关阅读:
    Eclipse自动换行插件
    JAVA中super与this的区别
    外网访问PG数据库,如何赋予IP访问权限
    PostgreSQL环境变量与psql命令的替代作用
    \l 的使用
    一次生成任意多行数据的语句
    equals与==的区别
    PostgreSQL 名词理解EXPLAIN VERBOSE
    PG坑爹的数组定义
    【收藏】常用的ftp命令
  • 原文地址:https://www.cnblogs.com/finehappy/p/3062334.html
Copyright © 2011-2022 走看看