添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
public ref class Canvas : System::Windows::Controls::Panel
public class Canvas : System.Windows.Controls.Panel
type Canvas = class
    inherit Panel
Public Class Canvas
Inherits Panel
Canvas

以下示例生成三个 Rectangle 元素,每个元素 100 像素。 第一个 Rectangle 为红色,其左上角 ( x, y ) 位置指定为 (0, 0) 。 第二 Rectangle 个是绿色的,它的左上角位置是 (100, 100) ,就在第一个正方形的下方和右侧。 第三 Rectangle 个是蓝色,它的左上方位置是 (50, 50) 。 因此,第三个 Rectangle 涵盖第一 Rectangle 个的右下象限和第二个的左上象限。 由于第三 Rectangle 个是最后一个布局,因此它似乎位于其他两个正方形的顶部 - 也就是说,重叠部分假定第三 Rectangle 个 。

// Create the application's main window mainWindow = new Window (); mainWindow.Title = "Canvas Sample"; // Create the Canvas myParentCanvas = new Canvas(); myParentCanvas.Width = 400; myParentCanvas.Height = 400; // Define child Canvas elements myCanvas1 = new Canvas(); myCanvas1.Background = Brushes.Red; myCanvas1.Height = 100; myCanvas1.Width = 100; Canvas.SetTop(myCanvas1, 0); Canvas.SetLeft(myCanvas1, 0); myCanvas2 = new Canvas(); myCanvas2.Background = Brushes.Green; myCanvas2.Height = 100; myCanvas2.Width = 100; Canvas.SetTop(myCanvas2, 100); Canvas.SetLeft(myCanvas2, 100); myCanvas3 = new Canvas(); myCanvas3.Background = Brushes.Blue; myCanvas3.Height = 100; myCanvas3.Width = 100; Canvas.SetTop(myCanvas3, 50); Canvas.SetLeft(myCanvas3, 50); // Add child elements to the Canvas' Children collection myParentCanvas.Children.Add(myCanvas1); myParentCanvas.Children.Add(myCanvas2); myParentCanvas.Children.Add(myCanvas3); // Add the parent Canvas as the Content of the Window Object mainWindow.Content = myParentCanvas; mainWindow.Show (); WindowTitle = "Canvas Sample" 'Create a Canvas as the root Panel Dim myParentCanvas As New Canvas() myParentCanvas.Width = 400 myParentCanvas.Height = 400 ' Define child Canvas elements Dim myCanvas1 As New Canvas() myCanvas1.Background = Brushes.Red myCanvas1.Height = 100 myCanvas1.Width = 100 Canvas.SetTop(myCanvas1, 0) Canvas.SetLeft(myCanvas1, 0) Dim myCanvas2 As New Canvas() myCanvas2.Background = Brushes.Green myCanvas2.Height = 100 myCanvas2.Width = 100 Canvas.SetTop(myCanvas2, 100) Canvas.SetLeft(myCanvas2, 100) Dim myCanvas3 As New Canvas() myCanvas3.Background = Brushes.Blue myCanvas3.Height = 100 myCanvas3.Width = 100 Canvas.SetTop(myCanvas3, 50) Canvas.SetLeft(myCanvas3, 50) ' Add child elements to the Canvas' Children collection myParentCanvas.Children.Add(myCanvas1) myParentCanvas.Children.Add(myCanvas2) myParentCanvas.Children.Add(myCanvas3) ' Add the parent Canvas as the Content of the Window Object Me.Content = myParentCanvas <Page WindowTitle="Canvas Sample" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <Canvas Height="400" Width="400"> <Canvas Height="100" Width="100" Top="0" Left="0" Background="Red"/> <Canvas Height="100" Width="100" Top="100" Left="100" Background="Green"/> <Canvas Height="100" Width="100" Top="50" Left="50" Background="Blue"/> </Canvas> </Page>

包含 Canvas 对象的集合 UIElement ,这些对象位于 属性中 Children

Canvas 是唯一没有固有布局特征的面板元素。 Canvas 的默认值 Height Width 属性为零,除非它是自动调整其子元素大小的元素的子元素。 的 Canvas 子元素永远不会调整大小,它们只是定位在其指定的坐标处。 这为不需要或不需要固有的大小调整约束或对齐的情况提供了灵活性。 对于希望自动调整子内容的大小和对齐情况,通常最好使用 Grid 元素。

属性 ZIndex 确定共享相同坐标空间的子元素的显示顺序。 一个子元素的较高 ZIndex 值指示此元素将出现在具有较低值的另一个子元素上方。

如果指定它们,附加属性 Canvas.Top Canvas.Left 将优先于 Canvas.Bottom Canvas.Right 属性。

Canvas 子元素始终具有所需的完整大小。 因此,垂直对齐和水平对齐在 内 Canvas 不起作用。

Canvas 是可用于子内容的绝对定位的顶级布局控件。 对于绘画和绘图,可以使用画笔,并且不必使用 Canvas 。 有关详细信息,请参阅 使用纯色和渐变进行绘制概述

默认情况下,面板元素不接收焦点。 若要强制面板元素接收焦点,请将 Focusable 属性设置为 true

为指定的路由事件添加路由事件处理程序,并将该处理程序添加到当前元素的处理程序集合中。 将 handledEventsToo 指定为 true ,可为已标记为由事件路由中的其他元素处理的路由事件调用所提供的处理程序。

(继承自 UIElement )

定位子元素,并确定 UIElement 的大小。 父元素从它们的 ArrangeCore(Rect) 实现(或者是 WPF 框架级别等效项)调用此方法,以便形成递归布局更新。 此方法产生第二次布局更新。

(继承自 UIElement )

对指定依赖属性的值进行强制。 通过对调用方 DependencyObject 上存在的依赖属性的属性元数据中所指定的任何 CoerceValueCallback 函数进行调用来完成此操作。

(继承自 DependencyObject )

更新 UIElement DesiredSize 。 父元素从其自身的 MeasureCore(Size) 实现调用此方法以形成递归布局更新。 调用此方法构成布局更新的第一个处理过程(“测量”处理过程)。

(继承自 UIElement )

每当更新此 FrameworkElement 的任何依赖属性的有效值时调用。 将在自变量参数中报告已更改的特定依赖属性。 重写 OnPropertyChanged(DependencyPropertyChangedEventArgs)

(继承自 FrameworkElement )

支持 FrameworkElement 的专用子类中的增量布局实现。 如果子元素包含无效属性,且该属性在元数据中标记为影响布局过程中父元素的测量或排列过程的因素,则调用 ParentLayoutInvalidated(UIElement)

(继承自 FrameworkElement )