WPF and Silverlight 学习笔记(九):WPF布局管理之Canvas、InkCanvas
一、Canvas
WPF中子元素的绝对定位的布局控件
其子元素使用WidthHeight定义元素的宽度和高度
使用Convas.LeftConvas.Right)、Convas.TopConvas.Bottom)定义与Convas容器的相对位置
如果同时存在Convas.LeftConvas.RightConvas.TopConvas.Bottom,则Convas.LeftConvas.Top优先生效
例如:
  1: <Canvas>
  2:    <Button Canvas.Left="10" Canvas.Top="10" Height="23" Width="75">LT</Button>
  3:    <Button Canvas.Right="10" Canvas.Top="10" Height="23" Width="75">RT</Button>
  4:    <Button Canvas.Left="10" Canvas.Bottom="10" Height="23" Width="75">LB</Button>
  5:    <Button Canvas.Right="10" Canvas.Bottom="10" Height="23" Width="75">RB</Button>
  6: </Canvas>
在调整窗体大小时,LT与左、上距离保持不变;RT与右、上距离保持不变;LB与左、下距离保持不变;RB与右、下距离保持不变。使用Canvas不能简单地实现Windows应用程序中Acho的功能。
二、InkCanvas
WPF中实现允许使用墨迹的控件。如:
  1: <Window x:Class="WPFLayoutDemo.InkCanvasDemo"
  2:    xmlns="schemas.microsoft/winfx/2006/xaml/presentation"
  3:    xmlns:x="schemas.microsoft/winfx/2006/xaml"
  4:    Title="InkCanvasDemo" Height="200" Width="300">
  5:    <InkCanvas>
  6:        <InkCanvas.DefaultDrawingAttributes>
  7:            <DrawingAttributes Color="Red" />
  8:        </InkCanvas.DefaultDrawingAttributes>
  9:        <Image Width="155" Height="155" InkCanvas.Left="10" InkCanvas.Top="10"
  10:                Source="Logo2.png"/>
  11:    </InkCanvas>
  12: </Window>
其他的功能与Canvas相近。
WPF and Silverlight 学习笔记(十): WPF控件模型
WPF对控件其类型的继承方式如下
(其中绿表示的类是抽象类,蓝表示的类是非抽象类)
控件内容模型
System.Windows.Controls.Control类:表示 用户界面 (UI) 元素的基类,这些元素使用ControlTemplate来定义其外观
o ContentControlContentControl 是一种包含一段内容的 Control
说明
ContentControl 是一种包含一段内容的 Control
内容属性
Content
内容模型信息
控件内容模型概述
属于此类型系列的类型
Button, ButtonBase, CheckBox, ComboBoxItem, ContentControl, Frame, GridViewColumnHeader, GroupItem, Label, ListBoxItem, ListViewItem, NavigationWindow, RadioButton, RepeatButton, ScrollViewer, StatusBarItem, ToggleButton, ToolTip, UserControl, Window
可包含 ContentControl 类型的类型
ContentControl 类、HeaderedContentControl 类、ItemsControl 类、HeaderedItemsControl 类、Panel 类、Decorator 类和 Adorner
子类别
HeaderedContentControl
o HeaderedContentControl:包含一段内容并具有 Header ContentControl
说明
HeaderedContentControl 是一种包含一段内容并具有 Header ContentControl
内容属性
Content, Header
内容模型信息
控件内容模型概述
属于此类型系列的类型
Expander, GroupBox, HeaderedContentControl, TabItem
可包含 HeaderedContentControl 类型的类型
ContentControl 类、HeaderedContentControl 类、ItemsControl 类、HeaderedItemsControl 类、Panel 类、Decorator 类和 Adorner
o ItemsControl:可包含多个项目(例如字符串、对象或其他元素)的 Control
说明
ItemsControl 是一种可包含多个项目(例如字符串、对象或其他元素)的 Control
内容属性
Items, ItemsSource
主内容类型
多个项目,可以是字符串、对象或其他元素。
内容模型信息
控件内容模型概述
属于此类型系列的类型
Menu, MenuBase, ContextMenu, ComboBox, ItemsControl, ListBox, ListView, TabControl, TreeView, Selector, StatusBar
可包含 ItemsControl 类型的类型
ContentControl 类、HeaderedContentControl 类、ItemsControl 类、HeaderedItemsControl 类、Panel 类、Decorator 类和 Adorner
子类别
HeaderedItemsControl
o HeaderedItemsControl:可包含多个项目(例如字符串、对象或其他元素)并具有标题的ItemsControl
说明
HeaderedItemsControl 是一种 ItemsControl,可包含多个项目(例如字符串、对象或其他元素)并具有标题。
内容属性
Header, Items, ItemsSource
内容模型信息
控件内容模型概述
属于此类型系列的类型
HeaderedItemsControl, MenuItem, TreeViewItem, ToolBar
可包含 HeaderedItemsControl 类型的类型
borderbox
通常,MenuItem 对象用作 Menu 元素的子元素;TreeViewItem 对象用作 TreeView 元素的子元素;ToolBar 对象用作 ToolBarTray 的子元素。
Panel内容模型
System.Windows.Controls.Panel抽象类:为所有 Panel 元素提供基类。使用 Panel 元素在 Windows Presentation Foundation (WPF) 应用程序中放置和排列子对象。
说明
Panel 是一种 FrameworkElement,它用于定位和排列子对象。
内容属性
Children
主内容类型
一个或多个 UIElement 对象。
内容模型信息
Panel 内容模型概述
属于此类型系列的类型
Canvas, DockPanel, Grid, TabPanel, ToolBarOverflowPanel, StackPanel, ToolBarPanel, UniformGrid, VirtualizingPanel, VirtualizingStackPanel, WrapPanel
可包含 Panel 类型的类型
ContentControl 类、HeaderedContentControl 类、ItemsControl 类、HeaderedItemsControl 类、Panel 类、Decorator 类和 Adorner
Sharp模型
System.Windows.Sharps.Sharp抽象类:为 EllipsePolygon Rectangle 之类的形状元素提供基类
Decorator模型
System.Windows.Controls.Decorator类:提供在单个子元素(如 Border Viewbox)上或周围应用效果的元素的基类
说明
Decorator 是一种 FrameworkElement,它将效果应用于单一子 UIElement 之上或周围。
内容属性
Child
主内容类型
单一 UIElement
内容模型信息
Decorator 内容模型概述
属于此类型系列的类型
ButtonChrome, ClassicBorderDecorator, ListBoxChrome, SystemDropShadowChrome, Border, InkPresenter, BulletDecorator, Viewbox, AdornerDecorator
可包含 Decorator 类型的类型
ContentControl 类、HeaderedContentControl 类、ItemsControl 类、HeaderedItemsControl 类、Panel 类、Decorator 类和 Adorner
WPF and Silverlight 学习笔记(十一): WPF控件内容模型
WPF控件内容模型主要指派生于System.Windows.Controls.Control类的各种控件,其主要分为四部分:
ContentControl
HeaderedContendControl
ItemsControl
HeaderedItemsControl
其继承关系请参考我上一篇博客的内容。
这四个类用作为 WPF 中大多数控件的基类。使用这些内容模型的类可以包含相同类型的内容,并以相同的方式处理该内容;可以放置在某个 ContentControl(或从 ContentControl 继承的类)中的任何类型的对象都可以放置在具有其他三个内容模型中的任何一个的控件中。如:
  1: <Window x:Class="WPFControlContentModule.winOverView"
  2:    xmlns="schemas.microsoft/winfx/2006/xaml/presentation"
  3:    xmlns:x="schemas.microsoft/winfx/2006/xaml"
  4:    Title="控件内容模型概述" Height="300" Width="400">
  5:    <Grid>
  6:        <Grid.ColumnDefinitions>
  7:            <ColumnDefinition />
  8:            <ColumnDefinition />
  9:        </Grid.ColumnDefinitions>
  10:        <Grid.RowDefinitions>
  11:            <RowDefinition />

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。