Items 控件 - 菜单

  WPF内建了两种菜单 ------ Menu和ContextMenu(上下文菜单)
1.Menu 
  把Menu添加到它的ItemsControl基类的唯一公开的API是IsMainMenu属性。当为true(默认值)时,用户按下Alt或者F10键,菜单获得焦点,这点符合Win32菜单用户的习惯。
 <Menu IsMainMenu="True">
      <MenuItem Header="_File">
        <MenuItem Header="_New..." />
        <MenuItem Header="_Open..." />
        <Separator />
        <MenuItem Header="Sen_d To">
          <MenuItem Header="Mail Recipient" />
          <MenuItem Header="My Document" />
        </MenuItem>
      </MenuItem>
      <MenuItem Header="_View" />
      <MenuItem Header="_Edit" />
    </Menu>
Menu垂直排列菜单项:
因为Menu是一种Items控件,所以可以将它的默认面板改成StackPanel。
所有的ItemsControl通过ItemsPanel属性来交换用来排列Items的面板,其他东西保持不变
<Menu IsMainMenu="True">
      <Menu.ItemsPanel>
        <ItemsPanelTemplate>
          <StackPanel />
        </ItemsPanelTemplate>
      </Menu.ItemsPanel>
    ...
</Menu>
MenuItem是带头的Items控件(继承自HeaderedItemControl),和按钮、标签控件一样,MenuItem使用下划线前缀来支持访问键(access key)

2.ContextMenu 
它和Menu工作原理一样。它是一种保存MenuItem和Separator的简单容器。但不能直接把ContextMenu嵌入到一个元素树中,必须通过一个适当的属性把它加载到控件上,比如
用由FrameworElement和FrameworkContentElement定义的ContextMenu属性。当用户在控件上右击(或者按下shift + F10)时,上下文菜单就被显示出来。

 
posted @ 2013-01-04 12:22  一梦三只鸭  阅读(553)  评论(0编辑  收藏  举报