2021-08-08 WPF控件专题 WrapPanel 控件详解[通俗易懂]

2021-08-08 WPF控件专题 WrapPanel 控件详解[通俗易懂]1.WrapPanel控件介绍流面板子元素按顺序排列,如果按水平方向:从左到右,超出部分,自动换行到下一行垂直从上到下,下一列排列方向:OrientationItemWidthItemHeight调整面板的尺寸时,内部子元素的布局–自动调整弥补StackPanel的不足StackPanel与WrapPanel结合使用2.具体案例<BorderBorderBrush=”Red”BorderTh

大家好,又见面了,我是你们的朋友全栈君。

1.WrapPanel 控件介绍

流面板 子元素按顺序排列,如果按水平方向:从左到右,超出部分,自动换行到下一行
垂直 从上到下, 下一列

排列方向:Orientation ItemWidth ItemHeight

调整面板的尺寸时,内部子元素的布局–自动调整

弥补StackPanel的不足

StackPanel与WrapPanel结合使用

2.具体案例

<Border BorderBrush="Red" BorderThickness="3" CornerRadius="5" >
    <StackPanel>
        <WrapPanel Name="wpPanels2" Margin="0,0,0,20">
            
        </WrapPanel>
        <WrapPanel Name="wpPanels" Orientation="Vertical" ItemHeight="30" ItemWidth="60"  Height="300" >
            <!--<Button>btn1</Button>
        <Button>btn1</Button>
        <Button>btn1</Button>
        <Button>btn1</Button>
        <Button>btn1</Button>
        <Button>btn1</Button>
        <Button>btn1</Button>
        <Button>btn1</Button>
        <Button>btn1</Button>
        <Button>btn1</Button>
        <Button>btn1</Button>
        <Button>btn1</Button>
        <Button>btn1</Button>
        <Button>btn1</Button>
        <Button>btn1</Button>
        <Button>btn1</Button>
        <Button>btn1</Button>
        <Button>btn1</Button>
        <Button>btn1</Button>-->
        </WrapPanel>
    </StackPanel>
</Border>
private void Window_Loaded(object sender, RoutedEventArgs e)
{ 
   
    for (int i = 1; i <= 100; i++)
    { 
   
        Button btn = new Button();
        btn.Content = "btn" + i.ToString("00") + "号";
        btn.Background = new SolidColorBrush(Colors.Gray);
       // btn.Name = "btn" + i;
        btn.Margin = new Thickness(2, 2, 0, 0);
        wpPanels.Children.Add(btn);
    }
    for (int i = 1; i <= 20; i++)
    { 
   
        Button btn = new Button();
        btn.Content = "btn" + i.ToString("00") + "号";
        btn.Background = new SolidColorBrush(Colors.Gray);
        //btn.Name = "btn" + i;
        btn.Margin = new Thickness(2, 2, 0, 0);
        wpPanels2.Children.Add(btn);
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163302.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 移动机器人路径规划:人工势场法[通俗易懂]

    移动机器人路径规划:人工势场法[通俗易懂]人工势场法是一种原理比较简单的移动机器人路径规划算法,它将目标点位置视做势能最低点,将地图中的障碍物视为势能高点,计算整个已知地图的势场图,然后理想情况下,机器人就像一个滚落的小球,自动避开各个障碍物滚向目标点。

    2022年6月16日
    24
  • 基于SSM框架的毕业设计管理系统的设计与实现(附资源下载)

    基于SSM框架的毕业设计管理系统的设计与实现(附资源下载)我的毕业设计就叫毕业设计管理系统的设计与实现,哈哈目录1.摘要2.需求分析3.数据库设计4.功能模块的设计与实现5.项目截图6.项目源码1.摘要毕业设计是本科教育的最后一个环节,整个过程包括课题拟定与审核、师生双选、开题报告、文档审核、中期检查、毕业答辩等多个环节,是一项系统而复杂的工作。开发一个适合本校的毕业设计管理系统,不仅能够极大地减少教务管理人员的…

    2022年7月12日
    18
  • 关于RewriteCond的内容

    关于RewriteCond的内容 RewriteCond Syntax:RewriteCondTestStringCondPattern[flags]   RewriteCond指令定义一条规则条件。在一条RewriteRule指令前面可能会有一条或多条RewriteCond指令,只有当自身的模板(pattern)匹配成功且这些条件也满足时规则才被应用于当前URL处理。   TestString是一个字符串,除了包

    2022年5月2日
    36
  • 5G融合通信_网关正在获取怎么解决

    5G融合通信_网关正在获取怎么解决随着物联网5G商用步伐的加速和5G网络建设的突飞猛进,2020年无疑成为5G向千行百业拓展落地的关键之年。作为“新基建”的领头羊,5G已凝聚产业链力量,蓄势待发为行业的智能化和数字化转型赋能,为新一轮经济增长提速。GrassRouter作为5G技术在超高清视频传输领域应用的领先代表,于今年推出了最新一代5G高速物联网B4G+5G聚合路由器,可支持构建点对点安全传输链路,支持移动/联通/电信混用,实现多达7条2G/3G/4G/5G/有线传输链路聚合,成为5G应用落地的重点项目之一。5G要全面覆盖还

    2022年10月3日
    4
  • JSONPath表达式[通俗易懂]

    JSONPath表达式[通俗易懂]前言JSONPath是一种简单的方法来提取给定JSON文档的部分内容。JSONPath提供的json解析非常强大,它提供了类似正则表达式的语法,基本上可以满足所有你想要获得的json内容。JSONPath表达式语法1、操作符?:问号,标记表达式的开头。使用的语法[?(表达)]例如:[?(Expression)]@:在符号处表示正在处理的当前节点。语法使用$.books[?@.price>100]注意:使用JSONPath的[]操作符操作一个对象或者数组,索引是从0开始。

    2022年6月24日
    31
  • 具体解释VB中连接access数据库的几种方法

    具体解释VB中连接access数据库的几种方法

    2021年11月30日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号