• 003面板


    1、StackPanel

    栈面板,可以将元素排列成一行或者一列。

    其特点是:每个元素各占一行或者一列。Orientation属性指定排列方式:Vertical(垂直)【默认】、Horizontal(水平)。默认情况下,水平排列时,每个元素都与面板一样高;垂直排列时,每个元素都与面板一样宽

    2、WrapPanel

    环绕面板,当元素布局到达边界时,可以自动换行。用法与StackPanel一样。

    3、DockPanel

    停靠面板,可以将面板的某一边指定给每个元素,当面板大小变化时,按钮将根据指定的边进行停靠。

    在DockPanel中,指定停靠边的控件,会根据定义的顺序占领边角,所有控件绝不会交叠。默认情况下,后添加的元素只能使用剩余空间,最后一个元素填充所有剩余空间。

    如果不希望最后一个元素填充剩余区域,可以将DockPanel属性LastChildFill设置为False。

    4、Canvas

    画布,用于完全控制每个元素的精确位置。

    他是布局控件中最为简单的一种,直接将元素放到指定位置,主要来布置图画。

    使用Canvas时,必须指定一个字元素的位置(相对于画布),否则所有元素都将出现在画布的左上角。

    调整位置用Left、Right、Top和Bottom四个附加属性。

    如果Canvas是窗口主元素,用户改变窗口大小时,Canvas也会随之变化,字元素的位置也会随之移动,以保证相对于Canvas的位置属性不变。

    Canvas允许子元素的部分或全部超过其边界,默认不会剪裁子元素,同时可以使用负坐标,因此画布不需要指定大小。

    如果想复制画布内容,将ClipToBounds设为true即可。

    5、Grid

    网格面板,以表格形式布局元素,对于整个面板上的元素进行布局,有效地解决多行之间、多列之间位置的一致性。

    Grid很像网页中的Table,定义一个网格,需要定义行、列,划分单元格,坐标从(0,0)开始。列宽和行高,分别可以在ColumnDefinition、RowDefinition里面指定Width、Height的值。

    首先定义网格,然后定义元素,并指定元素所在的单元格。

    如果不定义单元格,默认将元素放到第一个单元格(0,0)。

    6、UniformGrid

    均布网格, 顾名思义,所有单元格均匀排布,大小都相同。你可以为其指定行数Rows和列数Columns,UniformGrid将根据行列平分画布,每个控件一个单元格。

    7、Border

    在另一个元素四周绘制边框和/或背景。

    8、InkCanvas 

    定义接收和显示墨迹笔划的区域。

    案例:

    <Window x:Class="WpfApp3.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:WpfApp3"
            mc:Ignorable="d"
            Title="MainWindow" Height="473.766" Width="862.294" Loaded="Window_Loaded" >
        <Grid HorizontalAlignment="Left"  Margin="29,28,0,0" VerticalAlignment="Top" Width="764" >
            <InkCanvas EditingMode="None" Name="xxxx" Margin="20,18,299.048,11" Background="#FFDEC4C4" />
            <Label Name="zzzz" Content="Label" HorizontalAlignment="Left" Margin="560,83,0,0" VerticalAlignment="Top" RenderTransformOrigin="13.254,-0.127"/>
            <Button Content="Button" HorizontalAlignment="Left" Margin="564,232,0,0" VerticalAlignment="Top" Width="75" RenderTransformOrigin="1.569,3.35"/>
            <ComboBox x:Name="comboxdata" DropDownClosed="comboxdata_DropDownClosed" Margin="467,20,94.048,290" SelectionChanged="comboxdata_SelectionChanged"/>
        </Grid>
    </Window>
    using System;
    using System.Windows;
    using System.Windows.Controls;
    
    namespace WpfApp3
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }
            private void comboxdata_SelectionChanged(object sender, SelectionChangedEventArgs e)//窗体加载事件
            {
                xxxx.EditingMode =(InkCanvasEditingMode) comboxdata.SelectedItem;
            }
    
            private void Window_Loaded(object sender, RoutedEventArgs e)//combobox选择改变事件
            {
                foreach (InkCanvasEditingMode  mode  in Enum.GetValues(typeof(InkCanvasEditingMode)))
                {
                    comboxdata.Items.Add(mode);
                }
                comboxdata.SelectedIndex = 0;
            }
        }
    }

    7、常用属性

    属性:

    Orientation:取相  

    HorizontalAlignment:水平对齐特征  

    VerticalAlignment:垂直对齐特征  

    Margin:元素外边距  

    BorderBrush:边界画刷  

    BorderThickness:边界厚度  

    Padding:边框和内部元素距离  

    CornerRadius:圆角尺寸

    LastChildFill:该值指示 DockPanel中的最后一个子元素是否拉伸以填充剩余的可用空间。

    UseLayoutRounding:是否应向此元素的大小和位置布局应用布局舍入。

    EditingMode:获取或设置活动指针设备使用的用户编辑模式。

    • None=0// 忽略鼠标和手写笔输入

    • Ink = 1// 允许用户绘制批注,默认模式。使用鼠标或者手写笔绘图时,会绘制笔画

    • GestureOnly = 2// 不远许用户绘制笔画批注,但会关注预先定义的特定姿势,由System.Windows.Ink.ApplicationGesture定义笔势

    • InkAndGesture = 3// 允许用户绘制壁画批注,也可以识别预先定义的姿势

    • Select = 4// 允许用户选择保存在Children集合中的元素,要选择一个元素用户必须单机该元素或者拖动套索选择该元素,一旦选择一个元素就可以移动该元素,改变其尺寸或将其删除

    • EraseByPoint = 5// 擦除鼠标选中的笔画

    • EraseByStroke = 6// 擦除选中的一笔,开始到结束都会擦除

    附加属性:

    DockPanel.Dock设置在DockPanel里面的位置。

    Grid.Column:指示应显示 Grid中的哪个子内容列。

    Grid.Row:指示应显示 Grid中的哪个子内容行。

    Grid.RowSpan:该值表示在一个 Grid中子内容所跨越的总行数。

    Grid.ColumnSpan:该值表示在一个 Grid 中子内容所跨越的总列数。

    Canvas.ZIndex:该值表示元素在 Z 平面中的显示顺序。

  • 相关阅读:
    快速编辑里指定默认值
    Odoo domain 中的 like, ilike, =like, =ilike 举例说明【转】
    odoo报表条码无法显示解决[转]
    ubuntu 安装 wkhtmltopdf 的方法
    解决Odoo日期(时间)无效的问题 [转]
    ShareSDK演示
    黑客帝国数字矩阵特效做法
    lua中实现倒计时
    Lua中用Split函数分割字符串
    lua封装的位运算
  • 原文地址:https://www.cnblogs.com/suwencjp/p/15352911.html
Copyright © 2020-2023  润新知