科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件XAML开发入门之XAML的五大元素

XAML开发入门之XAML的五大元素

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

所有的XAML均是一个WPF类,但是并不是所有的WPF类都可以用XAML描述

作者:轩辕南宫 来源:天极开发 2007年11月3日

关键字: 开发 XAML 元素

  • 评论
  • 分享微博
  • 分享邮件
所有的XAML均是一个WPF类,但是并不是所有的WPF类都可以用XAML描述。那些可以用XAML描述出来的元素大多数是用来表现用户界面的,这些元素都是由System.Windows.UIElement类派生出的。该类包含一些与可视化用户界面相关的属性,以提供给XAML元素使用。一个从System.Windows.UIElement派生的元素可以在页面上进行可视化的呈现、可以接受来自键盘和鼠标的输入、还可以可视化地调整大小和布局子元素的位置,以及触发事件。

  并不是所有的XAML元素都派生自System.Windows.UIElement。例如LineBreak、TableColumn和Document等元素,都是派生自System.Windows.FrameworkContentElement类。通常该类中的元素是不能在页面上进行呈现出来的。

  大部分的XAML元素按照其功能可以分为如下的5个部分:

  ·根元素
  ·控件元素
  ·面板元素
  ·图形和几何元素
  ·文档元素

  根元素

  根元素是用来作为包含所有用户界面元素的基本容器。一个XAML页面必须要有一个根元素,最常用的根元素有Page、Window、StackPanel、DockPanel、Canvas和Grid。我们可以在一个根元素包含一个或者多个XAML元素,这些包含在内的XAML元素称为该根元素的子元素(在你打开XAMLPad工具时,它会自动为你创建一个根元素-Page)。除了上述的几种根元素外,我们还可以从Page或Window中派生出一个新类,这样我们就可以创建自定义的根元素,并在XAML页面中使用。

  根元素还必须引用适合的命名空间,就像以前的示例程序所显示的那样,我们在WPF程序中经常引用的命名空间为:

01 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
02 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

  控件元素

  控件元素处理和用户的交互。例如我们使用文本框控件输入数据、使用多选控件选择列表项或者执行其它的一些交互操作。这些控件元素按照其特性也可以分成5类

  ·简单控件 直接由System.Windows.Control派生而来,并且不包含Content、Items或Header等属性。这些控件主要有HorizontalScrollBar、VerticalScrollBar、Frame、TextBox和RichTextBox。

  ·内容控件 有Cotent属性,但是没有Items或Header属性。注意内容控件中只可以有一个XAML元素作为其包含的内容,但是所包含的XAML元素又可以包含多个元素,例如Panel元素。内容控件主要有Button、RepeatButton、Label、RadioButton、CheckBox、ListBoxItem、GroupItem、StatusBarItem、ToolTip、ScrollViewer和Window。

  ·项目控件 包含Items属性,但是没有Head和Content属性。项目控件通常用来展示多个选项供用户选择。这些控件主要有ListBox、ComboBox、Menu、ContextMenu、RadioButtonList, 和TabControl。

  ·标题项目控件 包含Head和Items属性,但是没有Content属性。Header属性用来为各个项目添加一个标题,而Items属性可以用来指定多个子元素。注意在标题项目控件中,Items属性是隐式声明的,也就是说我们并不直接使用Items属性指定各个子元素。下面通过下面的代码片断来查看标题项目控件(这里为MenuItem)的具体实现方式:

03 <MenuItem Header="First Menu Item">
04 <MenuItem Header="First Child Item" />
05 <MenuItem Header="Second Child Item" />
06 </MenuItem>

  上述的示例中包含一个主MenuItem元素,并且使用Header属性为其指定说明信息。在<MenuItem>和</MenuItem>之间还包含了另外两个MenuItem元素,作为主MenuItem元素的子项目。

  标题项目控件有如下两种,分别为MenuItem和ToolBar。

  ·标题内容控件 包含Header和Content属性,但是没有Items属性。如同内容控件一样,标题内容控件可以通过Content属性指定一个子元素。标题内容控件包括Expander和TabItem。

  Table 3-1. Attributes supported by control typ

控件类型 Content Header Items
Simple N N N
Content Y N N
Item N N Y
Header item N Y Y
Header content Y Y N

  面板元素

  面板元素主要是用来处理页面的布局,并且可以作为容器来包含其它的元素,例如控件或其它的面板。一些从Panel派生的元素通常被用作为根元素,但是Panel的首要目的还是为XAML页面提供布局支持,并对页面上的各个元素进行合理的布置。尤其是一些特殊的面板元素,可以在设计时指定一个特定的布局方案。用来用户界面设计的面板元素包括DockPanel、StackPanel、Canvas、WrapPanel和Grid。

  图形和几何元素

  图形和几何元素通常是用来呈现二维矢量图形。图形元素派生自Shape类,我们使用这些元素我就可以直接创建相关的图形。在WPF中可以直接使用的图形包括Ellipse(椭圆)、Line(线)、Path、Polygon(多边形)、Polyline(折线)和Rectangle(矩形)。图形元素也是UIElement中的一种,这就意味着我们可以在Panel元素和其它的控件中使用这些图形控件。

  几何元素,同样是用来呈现二维矢量图形,但是它比图形元素更具灵活性。我们可以使用几何元素来生成一些简单的二维矢量图形,例如圆或平面多边形,也可以用来构建一些复杂的矢量图形,例如贝塞尔曲线和弧形。注意,几何元素是无法进行自我呈现的,它必须依靠其它的元素才能绘制图形,例如Drawing和Path。因为几何元素只是创建图形的轮廓,并没有具体的呈现,所以我们还要使用那些在图形元素中经常使用的属性Fill(填充)、Stroke(画笔)和StrokeThicknessare(画笔浓度),来创建矢量图形的具体呈现方式。几何元素包括CombinedGeometry、LineGeometry, EllipseGeometry、GeometryGroup、PathGeometry、RectangleGeometry、PathSegment、ArcSegment, LineSegmen、BezierSegment、QuadraticBezierSegment、PolyQuadraticBezierSegment、PolyLineSegment, PolyBezierSegment、StartSegment和CloseSegment等。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章