zoukankan      html  css  js  c++  java
  • WPF 面板

    Border

    • BorderThickness="2"  边框宽度
    • Padding="10,10,10,10" 上下左右距离
    • CornerRadius="15"   设置圆角

    Canvas面板 (基于坐标的布局)

    • Canvas.ZIndex="1"   重叠时,修改显示方式(谁覆盖谁)
      <Canvas>
              <Button Canvas.Bottom="200" Canvas.Left="200" Height="23" Width="75" Content="button1" Name="button1" ></Button>
              <Button Canvas.Bottom="300" Canvas.Left="600" Height="23" Width="75" Content="button2" Name="button2" Click="Button2_Click" ></Button>
              <DataGrid Height="133" Canvas.Left="141" Canvas.Top="173" Width="192" Canvas.ZIndex="1"/>
          </Canvas>
      private void Button2_Click(object sender, RoutedEventArgs e)
              {
                  Canvas.SetZIndex(this.button1, 3);
              }
    • InkCanvas 元素
      (包含两个子内容集合,1、child集合——保存任意子元素   2、Strokes集合,保存了Ink.Stroke对象,表示用户在InkCanvas上绘制的图形输入。用户绘制的每一个直线或者曲线都会变成一个对象)

      几种模式

      • None=0                           // 忽略鼠标和手写笔输入
      • Ink = 1                            // 允许用户绘制批注,默认模式。使用鼠标或者手写笔绘图时,会绘制笔画
      • GestureOnly = 2            // 不远许用户绘制笔画批注,但会关注预先定义的特定姿势,由System.Windows.Ink.ApplicationGesture定义笔势
      • InkAndGesture = 3        // 允许用户绘制壁画批注,也可以识别预先定义的姿势
      • Select = 4                     // 允许用户选择保存在Children集合中的元素,要选择一个元素用户必须单机该元素或者拖动套索选择该元素,一旦选择一个元素就可以移动该元素,改变其尺寸或将其删除
      • EraseByPoint = 5         // 擦除鼠标选中的笔画
      • EraseByStroke = 6      // 擦除选中的一笔,开始到结束都会擦除
      • <InkCanvas EditingMode="GestureOnly">
        </InkCanvas>

        默认是Ink模式, 做绘版。 此种模式,只记录松开鼠标不保存。

      • Select模式下,可以对选中元素做一些操作

        <InkCanvas EditingMode="Select">
                <Button InkCanvas.Left="50" InkCanvas.Top="80" Content="Button1"/>
         </InkCanvas>

        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="30"/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            
            <StackPanel Grid.Row="0" Grid.ColumnSpan="2">
                <ComboBox Name="EditingMode" Margin="5" SelectionChanged="ComboBox_SelectionChanged"/>
            </StackPanel>
    
            <InkCanvas  Name ="InkCanvas" EditingMode="None" Grid.Row="1" Grid.ColumnSpan="2" Background="DarkSalmon">
                <Button InkCanvas.Left="50" InkCanvas.Top="80" Content="Button1"/>
            </InkCanvas>
        </Grid>
            private void Window_Loaded(object sender, RoutedEventArgs e)
            {
                foreach (InkCanvasEditingMode mode in Enum.GetValues(typeof(InkCanvasEditingMode)))
                {
                    this.EditingMode.Items.Add(mode);
                }
                this.EditingMode.SelectedIndex = 0;
            }
    
            private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                this.InkCanvas.EditingMode =(InkCanvasEditingMode)this.EditingMode.SelectedItem;
            }

    StackPanel 面板  (包含元素默认从上到小排列)

    • Orientation="Horizontal" 从左到右 

    WrapPanel面板 (包含元素默认从左到右排列,自动换行)

    DockPanel面板 自动布局上下左右拉伸等高等宽,最后一个元素占满所有控件。

    • DockPanel.Dock="Bottom"

    面板嵌套

        <DockPanel>
            <StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" HorizontalAlignment="Right">
                <Button Name="Button1"  DockPanel.Dock="Bottom" Content="Button1" Margin="10"  Padding="3" ></Button>
                <Button Name="Button2" Content="Button2" DockPanel.Dock="Top" Margin="10" Padding="3"></Button>
            </StackPanel>
            <TextBlock x:Name="textbolck1" DockPanel.Dock="Top"> this is a test</TextBlock>
        </DockPanel>

    Grid面板

    • Grid.Row
    • Grid.Column
    • Grid.ColumnSpan
    • GridSplitter 分割窗口(使面板可滑动一部分)

        <Grid>
            <Grid.Background>
                <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
                    <GradientStop Color="#FFB5E3F7" Offset="0.161"/>
                    <GradientStop Color="#FFF7B4B4" Offset="0.997"/>
                </LinearGradientBrush>
            </Grid.Background>
    
            <Grid.ColumnDefinitions>
                <ColumnDefinition MinWidth="50"/>
                <ColumnDefinition Width="8"/>
                <ColumnDefinition MinWidth="50" />
                <ColumnDefinition Width="1.2*"/>
                
            </Grid.ColumnDefinitions>
    
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
    
            <Border BorderThickness="2" Padding="10" CornerRadius="50" Background="AliceBlue">
                <StackPanel Name ="stackPanel1" Grid.Row="0" Grid.Column="0" Margin="3" Grid.RowSpan="2">
                    <Label Content="Label" Name="Label1" Width="75" Height="35" HorizontalAlignment="Center"></Label>
                    <Button Name="Button1" Content="Button1" Width="75" Height="25"></Button>
                    <Button Name="Button2" Content="Button2" Width="75" Height="25"></Button>
                    <Button Name="Button3" Content="Button3" Width="75" Height="25"></Button>
                </StackPanel>
            </Border>
    
            <GridSplitter Grid.Column="1" Width="3" Grid.RowSpan="2" VerticalAlignment="Stretch" HorizontalAlignment="Center"/>
            <Button Grid.Column="2" Grid.Row="0" Name="Button11"   Content="Button11"  ></Button>
            <Button  Grid.Column="2" Grid.Row="1" Grid.ColumnSpan="2" Name="Button22" Content="Button22" Padding="3" ></Button>
        </Grid>
    • 共享尺寸组(保持用户控件尺寸的一致性)

        SharedSizeGroup = "name"    在嵌套的Grid中 1*2 格, 两个并列的Grid,在设置行列时候定义相同的名称
      需要设置,Grid属性  Grid.IsSharedSizeScope="True"

        <Grid ShowGridLines="True" Grid.IsSharedSizeScope="True">
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition Height="30"/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            <Grid Grid.Row="0" ShowGridLines="True">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition  SharedSizeGroup="sameSize" />
                    <ColumnDefinition />
                    <ColumnDefinition/>
                </Grid.ColumnDefinitions>
                <TextBlock Margin="5">Happy Happy Happy Day !</TextBlock>
                <TextBlock Grid.Column="1"  Margin="5">Happy Work  !</TextBlock>
                <TextBlock Grid.Column="2"  Margin="5">Happy Study !</TextBlock>
            </Grid>
            <Grid Grid.Row="1">
                <Label Content="Learing WPF Happy!"/>
            </Grid>
            <Grid Grid.Row="2" ShowGridLines="True">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition  SharedSizeGroup="sameSize" />
                    <ColumnDefinition/>
                </Grid.ColumnDefinitions>
                <TextBlock Grid.Column="0" Margin="5">Happy  !</TextBlock>
                <TextBlock Grid.Column="2" Margin="5">Happy Happy !</TextBlock>
            </Grid>
        </Grid>

    文档大纲:查看结构

     

  • 相关阅读:
    Oracle使用sys登录时报错ORA-28009解决方法
    oem的使用
    isqlplus的使用
    oracle客户端中文乱码问题的解决
    十:jinja2模板查找路径
    九:flask-response响应
    八:flask-重定向示例
    七:flask-一些小细节
    六:flask-自定义URL转换器
    五:flask-url_for使用详解
  • 原文地址:https://www.cnblogs.com/codinghard/p/15621110.html
Copyright © 2011-2022 走看看