1. 程式人生 > 其它 >從零開始WPF開發組態(二)

從零開始WPF開發組態(二)

技術標籤:專案wpfc#

從零開始WPF開發組態(一)

右擊選單

上一節介紹了本次的開發工具,也剛剛建立了一個專案,接下來就要正式開發了。

一開始的構思是在視窗隨便一個位置加個按鈕,點擊出現先要的模型,然後進行拖拽的,但是想到不小心誤觸肯定會導致模型重疊的問題。想想還是使用右擊選單新增模型吧。
搜尋資料瞭解WPF實現方法,網上有很多,都是使用了 ContextMenu 。

在控制元件中直接宣告

     <Grid.ContextMenu>
            <ContextMenu Name="contextMenu">
                <
MenuItem
Header="新建">
<MenuItem Header="裝置" Click="MenuItemClick"/> </MenuItem> </ContextMenu> </Grid.ContextMenu>

但是我發現沒有實現成功,上網查詢了其他資料,都是這樣寫的,沒有其他的特別的地方,唯一區別是別人不是在 Grid 控制元件中宣告的,難道是這個原因?試了一下還真是。。。。。

換了寫法,在Window標籤加了右事件
完整程式碼塊

<Window x:Class="ConfigurationApp.Configuration"
        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:ConfigurationApp" mc:Ignorable="d" Title="Configuration" Height="450" Width="800" Loaded="Window_Loaded" MouseRightButtonUp="Window_MouseRightButtonUp">
<Grid> <Grid.ContextMenu> <ContextMenu Name="contextMenu"> <MenuItem Header="新建"> <MenuItem Header="裝置" Click="MenuItemClick"/> </MenuItem> </ContextMenu> </Grid.ContextMenu> </Grid> </Window>

後臺事件 Window_MouseRightButtonUp 程式碼

        private void Window_MouseRightButtonUp(object sender, MouseButtonEventArgs e) => this.contextMenu.IsOpen = true;

這邊程式碼塊寫法是使用方法的表示式主體
這樣寫也是沒問題的

        private void Window_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
        {
            this.contextMenu.IsOpen = true;
        }

到此右擊選單功能完成。