我把window的WindowStyle属性设置为None,自己做了一个TitleBar,但是想在右键点击TitleBar时调用系统的Menu。以下是主要代码:
IntPtr handle = GetSystemMenu(newWindowInteropHelper(this).Handle, false);
TrackPopupMenu(handle, 0, 0, 0, newWindowInteropHelper(this).Handle, new IntPtr() );
菜单是出来了,不过点击没有效果而且状态也不对,明明全屏状态依然可以点击全屏。我想肯定是缺少一个关联的过程。
请高手指导!
我想这位仁兄把问题复杂化了、右键菜单可以用ContextMenu来实现、
TitleBar可以用Border等UIElement 元素来做。Code如下:
<Border Width="Auto" Height="50" VerticalAlignment="Top" BorderBrush="#FFC73131" Background="#FF60A360">
<Border.ContextMenu>
<ContextMenu>
<MenuItem Header="Demo1" Click="Demo_Click"></MenuItem>
</ContextMenu>
</Border.ContextMenu>
</Border>
这样,在Border上右键就可以弹出一个Menu菜单。Menu 的样式不好看,可以重写他的Style!
系统的菜单的最大化最小化,还原等都可以自己来实现。
我知道这样做可以,但是我不想自己写,我想调用系统的Menu。