天天看點

TreeView實作滑鼠右擊彈出菜單

1、修改MainWindow.xaml檔案

<Window x:Class="WpfMouseRightMenuApp.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:WpfMouseRightMenuApp"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Window.Resources>
        <ContextMenu x:Key="contextMenu">
            <MenuItem Name="New" Header="建立" Click="New_Click"></MenuItem>
            <Separator></Separator>
            <MenuItem Name="Delete" Header="删除" Click="Delete_Click"></MenuItem>
        </ContextMenu>
    </Window.Resources>
    <Grid>
        <TreeView x:Name="treeView">
            <TreeViewItem Header="項目" ContextMenu="{StaticResource contextMenu}"/>
            <TreeViewItem Header="裝置" ContextMenu="{StaticResource contextMenu}"/>
        </TreeView>
    </Grid>
</Window>
           

2、修改MainWindow.xaml.cs檔案

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

        private void New_Click(object sender, RoutedEventArgs e)
        {
            object o = treeView.SelectedItem;
            if (o != null)
            {
                TreeViewItem treeViewItem = o as TreeViewItem;
                Console.WriteLine("TreeViewItem:"+ treeViewItem.Header.ToString());
            }
            Console.WriteLine("This is new Button");
        }

        private void Delete_Click(object sender, RoutedEventArgs e)
        {
            Console.WriteLine("This is delete Button");
        }
    }
}