none
XAML开发入门之XAML的五大元素 RRS feed

  • 常规讨论

  • XAML开发入门之XAML的五大元素
    发布于:2008-06-05 17:10:58 作者:轩辕南宫 来源:天极 访问:57次 文字:
      所有的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等。

    My blog: http://blog.csdn.net/dotfun http://dotfun.cnblogs.com

    My contact: QQ:372900288 E-mail:372900288@qq.com msn:sellnet007@hotmail.com

    2009年3月11日 7:25
    版主