首页 > 其他分享 >【愚公系列】2023年09月 WPF控件专题 Expander控件详解

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

时间:2023-09-14 23:02:48浏览次数:50  
标签:控件 自定义 09 隐藏 2023 WPF Expander 属性

(文章目录)


前言

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

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

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

一、Expander控件详解

WPF中的Expander控件是一个可折叠的控件,可以用来显示或隐藏其子控件。当用户单击Expander控件的标题时,其子控件将会打开或关闭。

Expander控件的属性和事件如下:

属性:

  • Header:Expander控件的标题
  • IsExpanded:控制子控件的打开或关闭状态

事件:

  • Expanded:当子控件打开时发生
  • Collapsed:当子控件关闭时发生

下面是一个Expander控件的示例代码:

<Expander Header="Navigation Menu" IsExpanded="True">
    <StackPanel>
        <Button Content="Home" />
        <Button Content="About" />
        <Button Content="Services" />
        <Button Content="Contact" />
    </StackPanel>
</Expander>

在上面的代码中,我们创建了一个Expander控件,并将其子控件放在StackPanel中。当用户单击控件的标题时,子控件将会打开或关闭,并显示或隐藏StackPanel中的所有按钮。

1.属性介绍

WPF中Expander控件是一个可展开的区域,通常用于显示或隐藏可选内容。它有多个属性,下面是其中一些常用的属性:

  1. Header:Expander的标题,通常是一个字符串或其他控件。
  2. IsExpanded:指示Expander是否展开的布尔值属性。
  3. ExpandDirection:指定Expander的展开方向,可以是Up、Down、Left或Right。
  4. Content:要显示或隐藏的内容,可以是一个控件或多个控件。
  5. HeaderTemplate:一个数据模板,用于显示Expander的标题。
  6. Template:一个控件模板,用于自定义Expander的外观和行为。
  7. Collapsed:当Expander折叠时发生的事件。
  8. Expanded:当Expander展开时发生的事件。

以上是一些常用的属性,还有其他的属性可以参考MSDN文档。

2.常用场景

Expander控件是WPF中常用的控件之一,它可以将一组相关的控件或内容折叠起来,使用户可以灵活地控制显示和隐藏。下面是Expander控件常用的场景:

  1. 展开和收起详细信息:当在界面上需要显示大量的信息时,可以使用Expander控件来分组和隐藏详细信息,以便用户能够更好地浏览并选择需要的信息。

  2. 显示和隐藏子菜单:Expander控件可以用来隐藏和显示具有子菜单的菜单项。当用户单击菜单项时,可以展开子菜单,然后再次点击相同的菜单项可以将其收起。

  3. 切换多个选项卡内容:在TabControl控件中,可以使用Expander控件来切换多个选项卡的内容。例如,展开一个选项卡的Expander控件时,可以关闭其他选项卡的Expander控件,以便有更多的空间去显示当前选项卡的内容。

  4. 窗口内的面板控制:Expander控件可以用来控制窗口中的面板。例如,可以设置一个Expander控件来切换窗口左侧的面板。当Expander控件折叠时,面板将关闭;折叠后,面板将呈现。

Expander控件是一个很有用的WPF控件,适合用于需要分组和隐藏控件的场景中。

3.具体案例

<Window x:Class="WpfAppTest.ExpanderWindow"
        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="ExpanderWindow" Height="450" Width="800">
        <Grid>
                <Expander Header="用户权限" HorizontalAlignment="Left" Height="auto" Margin="146,121,0,0" VerticalAlignment="Top" Width="200" Padding="10" ExpandDirection="Down" BorderThickness="2" BorderBrush="Green" IsExpanded="False">
                        <StackPanel Background="#FFE5E5E5">
                                <CheckBox Content="管理员"/>
                                <CheckBox Content="系统管理员"/>
                                <CheckBox Content="业务员"/>
                        </StackPanel>
                </Expander>


        </Grid>
</Window>

标签:控件,自定义,09,隐藏,2023,WPF,Expander,属性
From: https://blog.51cto.com/u_15437432/7474967

相关文章

  • 2023年9月14日
    效果图图1图2浮动显示信息、导航栏HTML<!DOCTYPEhtml><html> <head> <metacharset="utf-8"/> <title>2023年9月14日</title> <linkrel="stylesheet"href="./css/index_style.css"> </head> <b......
  • 2023/9/14
    今天上午学习了面向对象方法,UML的诞生和标准化及应用范围、“4+1”构架,用例图基础,对面向对象有了更深一步的认识,同时也了解到了一些面向对象需要的知识。体育课上学习了篮球的运球。下午数据结构学习了单链表的增删改查,以及循环链表和双向链表,对链表学习进行了一定的复习,对算法的......
  • CSP-J&S 2023 游记
    本游记中的时间均表示为日期(初赛基准时间/复赛基准时间)2023-9-14(-1/-36)创建了这篇游记。开始准备初赛,做了几份真题(\(CSP-S2015\),\(CSP-S2021\),\(CSP-S2022\)),但感觉没啥用,近几年的都做过,远古的又太简单。几乎没复习基础知识,感觉有点慌。......
  • 2023.9.14
    数据结构今天学习了单链表的创建,首先学习了单链表的头插法,学习到单链表的创建是一个动态结构,整个可用储存空间可以为多个链表共同享用,每个i链表占用的空间不需要提前分配划定,而是由系统按时生成,因此,建立线性表的链式存储结构的过程就是一个动态生成链表的过程。前插法就是通过将新......
  • Java学习_009_for循环
    循环结构:组成:1.初始化语句:用于表示循环开启时的起始状态,简单说就是循环开始的时候是什么样子;2.条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能够一直执行下去;3.循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情;4.条件控制语句:用于表示循......
  • 20230914-python爬取数据写入到excel
    python爬取数据写入到excel1。查看是否安装了相应的插件 piplist2。查看是否安装了  pandas     (安装命令在cmd中安装,pipinstallpandas)3。查看是否安装 openpyxl      pipinstallopenpyxl ####写入excelimportpandasaspddf=pd.DataFra......
  • noi2023游记
    前情提要tjD类什么垃圾不用我说了吧。Day-1到场了,挺热的。和两位同校巨佬分到了一个宿舍还有一位E类都比我强/kel中午和三位同校巨佬还有教练去外面吃了一顿火锅,选的微辣但是我还是有点接受不了。北方人没吃过油碟。没有麻酱我们都有点奇怪。幸亏有冰红茶解辣。成......
  • 2023年9月14日(2)
    publicclassTestDouble{publicstaticvoidmain(Stringargs[]){System.out.println("0.05+0.01="+(0.05+0.01));System.out.println("1.0-0.42="+(1.0-0.42));System.out.println("4.015*100="+(4.015*100))......
  • 2023年9月14日 天气:晴
    今天背了20个单词,然后就是上体育课学了篮球方面的知识。然后下午就是上离散数学课练习题:求猴子大王importjava.util.Scanner;importjava.lang.Math;importjava.util.HashMap;importjava.util.Map;publicclassMonkeyKing{publicstaticvoidmain(String......
  • 2023年十月一(西安游玩)️‍♂️
    Day1、......