首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【愚公系列】2023年10月 WPF控件专题 Groupbox控件详解

【愚公系列】2023年10月 WPF控件专题 Groupbox控件详解

原创
作者头像
愚公搬代码
发布2023-10-07 23:43:47
发布2023-10-07 23:43:47
1.5K00
代码可运行
举报
文章被收录于专栏:历史专栏历史专栏
运行总次数:0
代码可运行

🏆 作者简介,愚公搬代码 🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,阿里云专家博主,腾讯云优秀博主,掘金优秀博主,51CTO博客专家等。 🏆《近期荣誉》:2022年CSDN博客之星TOP2,2022年华为云十佳博主等。

🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。

🏆🎉欢迎 👍点赞✍评论⭐收藏

🚀前言

WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。

原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见的标准用户界面元素。

自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化的用户界面元素。自定义控件可以根据需求提供更多的功能和自定义化选项,以及更好的用户体验。

🚀一、Groupbox控件详解

GroupBox控件是WPF(Windows Presentation Foundation)中一个常用的容器控件,可用于将一组相关的控件进行分组并提高可读性。

GroupBox控件通常包含一个标题,用于描述其所包含的控件。它可以通过设置Header属性来设置标题,也可以通过设置HeaderTemplate属性来自定义标题的显示方式。

GroupBox控件还可以使用不同的样式和模板进行自定义,以满足不同的设计和用户需求。可以使用样式和模板来改变GroupBox的边框样式、背景颜色、字体等属性。

下面是一个GroupBox控件的样例,其中包含一些文本框和按钮控件:

代码语言:html
复制
<GroupBox Header="Personal Information">
    <StackPanel Margin="10">
        <TextBlock Text="Name:"/>
        <TextBox/>
        <TextBlock Text="Age:"/>
        <TextBox/>
        <Button Content="Save"/>
    </StackPanel>
</GroupBox>

这里我们创建了一个GroupBox,标题为“Personal Information”,并包含了一些文本框和按钮。它们被放置在一个StackPanel中,用于控制它们的布局和对齐方式。

使用GroupBox控件可以使复杂的界面更加清晰和易于阅读,并且可以通过样式和模板来增强其可定制性。

🔎1.属性介绍

WPF中Groupbox控件的属性有:

  1. Header:用于设置GroupBox的标题文本。
  2. HeaderTemplate:用于设置GroupBox的标题模板,可以自定义GroupBox标题的样式。
  3. BorderBrush:用于设置GroupBox的边框颜色。
  4. BorderThickness:用于设置GroupBox的边框厚度。
  5. Background:用于设置GroupBox的背景颜色。
  6. Padding:用于设置GroupBox内部的空白区域。
  7. IsEnabled:用于设置GroupBox是否可用。
  8. IsTabStop:用于设置GroupBox是否可以被Tab键选中。
  9. FlowDirection:用于设置GroupBox的文本流向,可以是从左到右或从右到左。
  10. Margin:用于设置GroupBox与其父容器之间的边距。
  11. HorizontalContentAlignment:用于设置GroupBox中内容的水平对齐方式。
  12. VerticalContentAlignment:用于设置GroupBox中内容的垂直对齐方式。
  13. Template:用于设置GroupBox的外观模板,可以自定义GroupBox的外观样式。

🔎2.常用场景

WPF中Groupbox控件常用于以下场景:

  1. 分组:当需要将某些相关控件进行分组时,可以使用Groupbox控件,将它们放在一个框架中,给用户提供更好的可视化效果。
  2. 选项:当需要让用户在多个选项中进行选择时,可以将这些选项放在Groupbox控件中,以便用户更加方便地浏览和选择。
  3. 信息:当需要在界面上显示一组相关的信息时,可以使用Groupbox控件将这些信息进行分组显示。
  4. 布局:当需要对一组控件进行布局时,可以使用Groupbox控件作为容器,对其中的控件进行排列布局。

Groupbox控件常用于界面设计中的分组和布局,可以使界面更加直观、美观和易于使用。

🔎3.具体案例

代码语言:javascript
代码运行次数:0
运行
复制
<Window x:Class="WpfAppTest.GroupBoxWindow"
        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:WpfAppTest"
        mc:Ignorable="d"
        Title="GroupBoxWindow" Height="450" Width="800" Loaded="Window_Loaded">
        <Grid>
                <!-- 分组控件  内容控件   只能有一个元素作为它的Content
                     如果我想在它的内部呈放多个子元素????   ——布局控件   -容纳多个元素
                -->
                <GroupBox  Header="导航菜单"  Width="200"  Height="200" BorderThickness="2" BorderBrush="Red">
                        <StackPanel>
                                <Label Content="这是一个GroupBox控件"/>
                                <Label Content="这是一个GroupBox控件"/>
                                <Label Content="这是一个GroupBox控件"/>
                                <Label Content="这是一个GroupBox控件"/>
                        </StackPanel>
                </GroupBox>
                <GroupBox  Header="导航菜单2"  Width="221"  Height="200" BorderThickness="2" BorderBrush="Red" Margin="32,110,0,0" HorizontalAlignment="Left"  VerticalAlignment="Top" Name="gbInfo">
                        <StackPanel Orientation="Vertical" >
                                <StackPanel Orientation="Horizontal" >
                                        <Label Content="用户名:"/>
                                        <TextBox Name="txtUserName" Text="userName"  Width="150"/>
                                </StackPanel>
                                <StackPanel Orientation="Horizontal" Margin="0,10,0,0">
                                        <Label Content="密码:"/>
                                        <PasswordBox Password="123456"  Width="150"/>
                                </StackPanel>
                        </StackPanel>
                </GroupBox>
        </Grid>
</Window>
代码语言:javascript
代码运行次数:0
运行
复制
private void Window_Loaded(object sender, RoutedEventArgs e)
{
        //如果我们没有设置TextBox的name属性,通过GroupBox控件去获取
        StackPanel spFirst = gbInfo.Content as StackPanel;
        foreach(var ele in  spFirst.Children)
        {
                StackPanel sp = ele as StackPanel;
                foreach(var ele2 in sp.Children)
                {
                        if(ele2 is TextBox)
                        {
                                TextBox txt = ele2 as TextBox;
                                string name = txt.Text;
                        }
                }
        }

        string name1 = txtUserName.Text;//直接通过name属性获取控件的Text  
}

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🚀前言
  • 🚀一、Groupbox控件详解
    • 🔎1.属性介绍
    • 🔎2.常用场景
    • 🔎3.具体案例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档