從零開始WPF開發組態(二)
阿新 • • 發佈:2021-01-14
右擊選單
上一節介紹了本次的開發工具,也剛剛建立了一個專案,接下來就要正式開發了。
一開始的構思是在視窗隨便一個位置加個按鈕,點擊出現先要的模型,然後進行拖拽的,但是想到不小心誤觸肯定會導致模型重疊的問題。想想還是使用右擊選單新增模型吧。
搜尋資料瞭解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;
}
到此右擊選單功能完成。