当前位置:   article > 正文

WPF Menu+ContextMenu+StatusBar入门介绍

wpf menu

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

①menu

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

这个控件的XAML语法如下:

  1. <Menu x:Name="menu">
  2. <MenuItem Header="" Click="">
  3. <MenuItem Header=""/>
  4. <MenuItem Header=""/>
  5. </MenuItem>
  6. <MenuItem Header=""/>
  7. <MenuItem Header=""/>
  8. <MenuItem Header=""/>
  9. </Menu>

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

②ContextMenu

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

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

  1. <TextBlock Text="123" FontSize="50" Background="LightGreen">
  2. <TextBlock.ContextMenu>
  3. <ContextMenu HasDropShadow="True">
  4. <MenuItem Header="复制"/>
  5. <MenuItem Header="粘贴"/>
  6. <MenuItem Header="删除"/>
  7. </ContextMenu>
  8. </TextBlock.ContextMenu>

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

③StatusBar

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

这个控件的XAML语法如下:

  1. <StatusBar FontSize="20" Background="LightBlue">
  2. <StatusBarItem>
  3. <TextBlock Text="底部栏"/>
  4. </StatusBarItem>
  5. <StatusBarItem>
  6. <Button Content="123"/>
  7. </StatusBarItem>
  8. <StatusBarItem>
  9. <RadioButton GroupName="1" Content="123" VerticalContentAlignment="Center"/>
  10. </StatusBarItem>
  11. <StatusBarItem>
  12. <ComboBox>
  13. <ComboBoxItem Content="123"/>
  14. <ComboBoxItem Content="456"/>
  15. </ComboBox>
  16. </StatusBarItem>
  17. <TextBlock Text="学习每一天"/>
  18. </StatusBar>

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

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

  1. <Window x:Class="ContextMenu_StatusBar.MainWindow"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. xmlns:local="clr-namespace:ContextMenu_StatusBar"
  7. mc:Ignorable="d"
  8. Title="MainWindow" Height="450" Width="800">
  9. <Grid>
  10. <Grid.RowDefinitions>
  11. <RowDefinition Height="auto"/>
  12. <RowDefinition/>
  13. <RowDefinition Height="auto"/>
  14. </Grid.RowDefinitions>
  15. <Menu FontSize="20" Background="Transparent">
  16. <MenuItem Header="新建">
  17. <MenuItem Header="文本"/>
  18. <MenuItem Header="PDF"/>
  19. </MenuItem>
  20. <MenuItem Header="编辑"/>
  21. <MenuItem Header="工具"/>
  22. <MenuItem Header="帮助"/>
  23. </Menu>
  24. <TextBlock Grid.Row="1" Text="123" FontSize="50" HorizontalAlignment="Center" VerticalAlignment="Center" Background="LightGreen">
  25. <TextBlock.ContextMenu>
  26. <ContextMenu HasDropShadow="True">
  27. <MenuItem Header="复制"/>
  28. <MenuItem Header="粘贴"/>
  29. <MenuItem Header="删除"/>
  30. </ContextMenu>
  31. </TextBlock.ContextMenu>
  32. </TextBlock>
  33. <StatusBar Grid.Row="2" FontSize="20" Background="LightBlue">
  34. <StatusBarItem>
  35. <TextBlock Text="底部栏"/>
  36. </StatusBarItem>
  37. <StatusBarItem>
  38. <Button Content="123"/>
  39. </StatusBarItem>
  40. <StatusBarItem>
  41. <RadioButton GroupName="1" Content="123" VerticalAlignment="Center" VerticalContentAlignment="Center"/>
  42. </StatusBarItem>
  43. <StatusBarItem>
  44. <ComboBox>
  45. <ComboBoxItem Content="123"/>
  46. <ComboBoxItem Content="456"/>
  47. </ComboBox>
  48. </StatusBarItem>
  49. <TextBlock Text="学习每一天"/>
  50. </StatusBar>
  51. </Grid>
  52. </Window>

显示效果:

点击新建:

右键中间的控件:

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/758395
推荐阅读
相关标签
  

闽ICP备14008679号