對wpf的入門記錄總結---ToolBar工具欄菜單和命令

工具欄菜單和前面的menu菜單有類似之處,不過通常放在工具欄托盤控件內。
而且 工具欄托盤可以處理諸如放置和大小調整等類似功能。

<Window x:Class="菜單.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:菜單"
        mc:Ignorable="d"
        Title="MainWindow" Height="200" Width="200">
    <Window.CommandBindings>
        <CommandBinding Command="New" CanExecute="CommonCommandBinding_CanExecute" />
        <CommandBinding Command="Open" CanExecute="CommonCommandBinding_CanExecute" />
        <CommandBinding Command="Save" CanExecute="CommonCommandBinding_CanExecute" />
    </Window.CommandBindings>
    <DockPanel>
        <ToolBarTray DockPanel.Dock="Top">
            <ToolBar>
                <Button Command="New" Content="New" />
                <Button Command="Open" Content="Open" />
                <Button Command="Save" Content="Save" />
            </ToolBar>
            <ToolBar>
                <Button Command="Cut" Content="Cut" />
                <Button Command="Copy" Content="Copy" />
                <Button Command="Paste" Content="Paste" />
            </ToolBar>
        </ToolBarTray>
        <TextBox AcceptsReturn="True" />
    </DockPanel>
      
</Window>

using System.Windows;
using System.Windows.Input;

namespace 菜單
{
    /// <summary>
    /// MainWindow.xaml 的交互邏輯
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void CommonCommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e)
        {
            e.CanExecute = true;
        }
    }
}

在這裏插入圖片描述

工具欄toolbar與menu菜單的區別:
① 先用ToolBarTray工具欄托盤聲明,再ToolBar聲明,裏面放置button,其命令綁定和內容content都由button實現,不能顯示快捷鍵提示。能調整放置位置和大小。

② menu是先用menu聲明,子項用menuitem聲明,其命令綁定由menuitem,內容由header(內置命令自動)實現,能顯示快捷鍵提示。能調整放置位置和大小。

③menuitem使用圖標,需要把image放置在 <MenuItem.Icon>之內。

 <MenuItem Header="_Manage users">
    <MenuItem.Icon>
      <Image Source="/WpfTutorialSamples;component/Images/user.png" />
   </MenuItem.Icon>
</MenuItem>

header指明文本,image指明圖標。
在這裏插入圖片描述
而toolbar使用圖標,是放在button之內,有了圖標就不能有content文本

 <Button Command="Copy" ToolTip="Copy selection to Windows Clipboard.">
     <Image Source="/WpfTutorialSamples;component/Images/copy.png" />
 </Button>

如果想既有圖標,又有文本指示,必須添加textblock控件

 <Button Command="Copy" ToolTip="Copy selection to Windows Clipboard.">
   <StackPanel Orientation="Horizontal">
     <Image Source="/WpfTutorialSamples;component/Images/copy.png" />
     <TextBlock Margin="3,0,0,0">Copy</TextBlock>
   </StackPanel>
 </Button>

④工具欄托盤不僅可以放置button,還能放任何wpf控件。

<Window x:Class="菜單.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:菜單"
        mc:Ignorable="d"
        Title="MainWindow" Height="200" Width="300">
    <Window.CommandBindings>
        <CommandBinding Command="New" CanExecute="CommonCommandBinding_CanExecute" />
        <CommandBinding Command="Open" CanExecute="CommonCommandBinding_CanExecute" />
        <CommandBinding Command="Save" CanExecute="CommonCommandBinding_CanExecute" />
    </Window.CommandBindings>
    <DockPanel>
        <ToolBarTray DockPanel.Dock="Top">
            <ToolBar>
                <Button Command="New" Content="New" />
                <Button Command="Open" Content="Open" />
                <Button Command="Save" Content="Save" />
                <Separator />
                <Label>Font size:</Label>
            </ToolBar>
            
            <ToolBar>
                <ComboBox>
                    <ComboBoxItem>10</ComboBoxItem>
                    <ComboBoxItem IsSelected="True">12</ComboBoxItem>
                    <ComboBoxItem>14</ComboBoxItem>
                    <ComboBoxItem>16</ComboBoxItem>
                </ComboBox>
            </ToolBar>
        </ToolBarTray>
        <TextBox AcceptsReturn="True" />
    </DockPanel>
      
</Window>


以上示例還在toolbar中放了分隔符,lable以及combobox控件
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章