相关文章推荐
酷酷的煎鸡蛋  ·  Android ...·  11 月前    · 
卖萌的眼镜  ·  ChangeServiceConfig2设置 ...·  2 年前    · 
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 是唯一没有固有布局特征的面板元素。 A 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 )