天天看点

contextmenu(CONTEXTMENU owndraw)

WPF 托盘图标右键弹出的ContextMenu如何关闭
NotifyIcon里面有一个ContextMenuStrip属性,直接设置这个属性就可以了,不要在click事件中设置,这是我以前写的一个项目中截的,粘给你看看:
 System.Windows.Forms.ContextMenuStrip contextMenu = new System.Windows.Forms.ContextMenuStrip();
System.Windows.Forms.ToolStripMenuItem item1 = new System.Windows.Forms.ToolStripMenuItem();
item1.Click += new EventHandler(item1_Click);
item1.Text = "显示主面板";
System.Windows.Forms.ToolStripMenuItem item2= new System.Windows.Forms.ToolStripMenuItem();
item2.Text = "退出";
item2.Click += new EventHandler(item2_Click);
contextMenu.Items.Add(item1);
contextMenu.Items.Add(item2);
this.notifyIcon.ContextMenuStrip = contextMenu;问题描述的不清楚。
contextmenu的继承关系:contextmenu->menubase->itemscontrol->control
假设xaml代码:
如需获得contextmenu中的元素,可以如下获取:
foreach(object item in btn.contextmenu.items)
{
debug.writeline(item);
}输出:
system.windows.controls.label: menu1
system.windows.controls.label: menu2
不知道有没有你想要的结果。
Android contextmenu 设置布局和大小
contextmenu在弹出的时候本身就是在中间的!你的字符串太长度太少!那么你可以对你的字符串进行判断,然后补充空格就行了!这样你弹出的菜单就不会那么窄了!但是我感觉系统的东西都不灵活都太丑了!你可以这么干!
在你要点击的弹出contextmenu对话框的view添加一个事件,就是长按事件如:
btn.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return false;
 });
然后再onLongClick事件里面弹出一个view
你可以用帧布局,你可以把你原来正常的LinearLayout放在真布局里面,要弹出的LineraLayout也就是类似于contextmenu的东西,你放在帧布局的下面,然后使用Layout_Gravity这个属性设置成center,这样你弹出的类似于contextmenu的东西就在中间了! 
这个比那个contextmenu 好多了,而且你还可以设置 shape 样式 什么的,你想放什么放什么进去! 让contextmenu见鬼去吧!      

继续阅读