WPF Menu+ContextMenu+StatusBar入门介绍

    今天简单介绍三个WPF控件,Menu,ContextMenu和StatusBar,这里只是认识一下,入个门。

①menu

    menu控件即菜单栏控件,这个控件的制作效果就如平时使用的各种软件最上方的菜单栏一样,一会儿会通过一个例子展示一下效果。

这个控件的XAML语法如下:

 <Menu x:Name="menu">
            <MenuItem Header="" Click="">
                <MenuItem Header=""/>
                <MenuItem Header=""/>
            </MenuItem>                      
            <MenuItem Header=""/>
            <MenuItem Header=""/>
            <MenuItem Header=""/>
        </Menu>

    在整个menu控件内,由许多的MenuItem组成,其中第一级定义的MenuItem将会显示为最上方我们看到的显示出来的菜单栏选项,第二级定义的MenuItem会通过点击第一级菜单栏选项再显示出来,其显示效果与等会要介绍的ContextMenu控件一样。这里面的Click即为相关项的点击添加事件,最终可以完成通过点击不同的子项实现不同的函数效果。

②ContextMenu

    这个控件是用来设置上下文菜单的,什么是上下文菜单,如下图所示,我们选中一个控件,右键点击,显示出如下图所示的部分,即为上下文菜单,这与上述menu菜单栏的二级MenuItem子项显示的样式是一样的,我们在设计UI时,如果想要给某个控件添加这样的上下文菜单,就可使用这个控件,这个控件不能单独声明,因为其是给其他控件添加上下文菜单,所以必须写在某一控件内。

这个控件的XAML语法如下:我们用TextBlock举例

        <TextBlock Text="123" FontSize="50" Background="LightGreen">
            <TextBlock.ContextMenu>
                <ContextMenu HasDropShadow="True">
                    <MenuItem Header="复制"/>
                    <MenuItem Header="粘贴"/>
                    <MenuItem Header="删除"/>
                </ContextMenu>
            </TextBlock.ContextMenu>

    从上述语法可以看出,该控件是设置在了TextBlock的内部,用来显示TextBlock的右击上下文菜单内容,其中的header即为显示内容,HasDropShadow选择为true表示给上下文菜单添加阴影效果,可以在MenuItem中添加点击事件,以实现不同的点击函数效果。

③StatusBar

这个控件也是一个集合控件,一般用在设置页面下方的状态栏,这个控件会把其内部的子项横向顺序排列,是一个水平条,可以在其中设置文本、图标或进度条等等内容,以提供用户有关应用程序当前状态的重要信息。

这个控件的XAML语法如下:

<StatusBar FontSize="20" Background="LightBlue">
            <StatusBarItem>
                <TextBlock Text="底部栏"/>
            </StatusBarItem>
            <StatusBarItem>
                <Button Content="123"/>
            </StatusBarItem>
            <StatusBarItem>
                <RadioButton GroupName="1" Content="123" VerticalContentAlignment="Center"/>
            </StatusBarItem>
            <StatusBarItem>
                <ComboBox>
                    <ComboBoxItem Content="123"/>
                    <ComboBoxItem Content="456"/>
                </ComboBox>
            </StatusBarItem>
            <TextBlock Text="学习每一天"/>
        </StatusBar>

    从上述语法我们可以看出,该控件内部可以任意设置子项控件,而且我们可以发现其子项不仅可以写在StatusBarItem的内部,也可以直接写在StatusBar 内部,都可以显示出来。

④写在一块,看一下这几个控件是怎么显示的

<Window x:Class="ContextMenu_StatusBar.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:ContextMenu_StatusBar"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="auto"/>
            <RowDefinition/>
            <RowDefinition Height="auto"/>
        </Grid.RowDefinitions>
        <Menu FontSize="20" Background="Transparent">
            <MenuItem Header="新建">
                <MenuItem Header="文本"/>
                <MenuItem Header="PDF"/>
            </MenuItem>
            <MenuItem Header="编辑"/>
            <MenuItem Header="工具"/>
            <MenuItem Header="帮助"/>
        </Menu>
        <TextBlock Grid.Row="1" Text="123" FontSize="50" HorizontalAlignment="Center" VerticalAlignment="Center" Background="LightGreen">
            <TextBlock.ContextMenu>
                <ContextMenu HasDropShadow="True">
                    <MenuItem Header="复制"/>
                    <MenuItem Header="粘贴"/>
                    <MenuItem Header="删除"/>
                </ContextMenu>
            </TextBlock.ContextMenu>
        </TextBlock>
        <StatusBar Grid.Row="2" FontSize="20" Background="LightBlue">
            <StatusBarItem>
                <TextBlock Text="底部栏"/>
            </StatusBarItem>
            <StatusBarItem>
                <Button Content="123"/>
            </StatusBarItem>
            <StatusBarItem>
                <RadioButton GroupName="1" Content="123" VerticalAlignment="Center" VerticalContentAlignment="Center"/>
            </StatusBarItem>
            <StatusBarItem>
                <ComboBox>
                    <ComboBoxItem Content="123"/>
                    <ComboBoxItem Content="456"/>
                </ComboBox>
            </StatusBarItem>
            <TextBlock Text="学习每一天"/>
        </StatusBar>
    </Grid>
</Window>

显示效果:

点击新建:

右键中间的控件:

    这里就是显示了一下,没有在后端写相关的点击事件。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值