wpf配置菜單欄


  WPF 內建了兩種菜單——Menu 和ContextMenu(上下文菜單)。

  1. Menu

  Menu 的項可以是任何東西,但是你應該使用MenuItem 以及Separator 對象。

   

 <Menu x:Name="menu" Height="23.333" VerticalAlignment="Top">
            <MenuItem Header="配置">
                <MenuItem Header="_New..."  IsCheckable="True"/>
                <MenuItem Header="_Open..." InputGestureText="ctrl+o" />
                <Separator />
                <MenuItem Header="Sen_d To">
                    <MenuItem Header="Mail Recipient" />
                    <MenuItem Header="My Documents" />
                </MenuItem>
            </MenuItem>
            <MenuItem Header="_Edit">
            </MenuItem>
            <MenuItem Header="_View">
            </MenuItem>
        </Menu>

 

  

 

 

 

  MenuItem 是帶頭的Items 控件(繼承自HeaderedItemControl),這個和帶頭的內容控件非常像。對於MenuItem,它的頭實際上是主對象(通常是文字,如圖4-18 所示)。如果Items 是子元素的話就會被作為子菜單顯示。和按鈕、標簽控件一樣,MenuItem 使用下划線前綴來支持訪問鍵(access key)。

  Separator(分隔線)是一種簡單控件,當被放在MenuItem 里時,它會被 那樣以水平線渲染。

  Icon——允許把任意類型的對象添加到Header 旁邊。Icon 對象會像Header 一樣被渲染,盡管它通常是一幅小圖片。

  IsCheckable——讓MenuItem 的行為像一個CheckBox 控件。

  InputGestureText——用一個相關的手勢(gesture)來標識一個項(最常見的就是鍵盤快捷方式,比如Ctrl+O)。

  2.ContextMenu

  它是一種保存MenuItem 和Separator 的簡單容器。但不能直接把ContextMenu 嵌入到一個元素樹中,必須通過一個適當的屬性把它加載到控件上,比如使用由

  FrameworkElement 和FrameworkContentElement 定義的ContextMenu 屬性。當用戶在控件上右擊(或者按下Shift+F10)時,上下文菜單就被顯示出來。

   <ListBox>
        <ListBox.ContextMenu>
            <ContextMenu>
                <MenuItem Header="_File">
                    <MenuItem Header="_New..." />
                    <MenuItem Header="_Open..." />
                    <Separator />
                    <MenuItem Header="Sen_d To">
                        <MenuItem Header="Mail Recipient" />
                        <MenuItem Header="My Documents" />
                    </MenuItem>
                </MenuItem>
            </ContextMenu>
        </ListBox.ContextMenu>
    </ListBox>

  

 

  3. TreeView

  TreeView 是一種常用控件,它會用可展開和折疊的節點來分層顯示數據。

  TreeView 和Menu 一樣,也是一種簡單控件。它可以包含任何項,並把這些項垂直排列。但是如果不用TreeViewItem 來填充它的話,TreeView 就沒意義

    <TreeView>
        <TreeViewItem Header="Desktop">
            <TreeViewItem Header="Computer">
            </TreeViewItem>
            <TreeViewItem Header="Recycle Bin">
            </TreeViewItem>
            <TreeViewItem Header="Control Panel">
                <TreeViewItem Header="Programs" />
                <TreeViewItem Header="Security" />
            </TreeViewItem>
            <TreeViewItem Header="Network">
            </TreeViewItem>
        </TreeViewItem>
    </TreeView>

  

 

  TreeViewItem 有兩個方便的屬性IsExpanded 和IsSelected,還有4 個事件,分別對應於這兩個屬性的4種狀態:Expanded、Collapsed、Selected 和Unselected。TreeViewItem 同樣支持富鍵盤導航,加號和減號鍵可以展開或折疊一個項,箭頭方向鍵、Page Up、Page Down、Home 和End 鍵可以從一個項向另一個項移動焦點。

  4. ToolBar

  Separator 也被渲染為垂直線而不是水平線。由於ToolBar 重載了項的默認樣式,所以當它們被放在一個ToolBar 中時會自動變成大部分人所期望看到的樣子。

    <ToolBar>
            <Button>1</Button>
            <Separator />
            <ToggleButton>2</ToggleButton>
            <Separator />
        </ToolBar>

  5. StatusBar

  StatusBar 的行為就像Menu,它只是水平排列放它的項

  StatusBar 為Separator 提供了一個控件模板,Separator 是作為垂直線被渲染的,就像它顯示在ToolBar 中一樣。StatusBar 中的項(除了Separator)是被隱式地包裝在一個StatusBarItem 中,但是你依然能顯式地進行包裝。

<StatusBar>
            <Label>27 Items</Label>
            <Separator />
            <Label>Zoom</Label>
            <ComboBox>
                <ComboBoxItem>100%</ComboBoxItem>
                <ComboBoxItem>85%</ComboBoxItem>
            </ComboBox>
        </StatusBar>

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM