我正在尝试创建一个显示用户菜单的按钮,如Google Chrome中所示:
没有传统方法可以做到这一点,所以我一直环顾四周,我发现每一种做法都是过时的或不起作用的(可能是因为它的原因)过时!)。
这是first link I found,但是只有 才能使用Windows Aero,而且可能不适用于Windows 8,8.1或10,而且效果不佳。 answer to this Stack Overflow question也基本上是相同的代码:
Aero on:
我在这里也发现了一些问题,但提到的技术不起作用。 One of the answers指向this MSDN article,它似乎提供了我想要的一些功能,但代码却是c++。
这是否可以在VB.NET中没有任何问题,如果是这样,怎么样?
这是使用VB.NET和Windows Forms,目标操作系统是Windows 7和更新版本。
答案 0 :(得分:2)
看看这两个链接:
Adding caption buttons to the Non-client area on Vista
自从我使用VB.Net已经有一段时间了,所以如果你不介意我只会添加ac#代码示例(基本上我从第一个链接中取了示例并尝试了它,它似乎是工作正常)
private void Form1_Load(object sender, EventArgs e)
{
IActiveMenu menu = ActiveMenu.GetInstance(this);
ActiveButton button = new ActiveButton();
button.BackColor = Color.LightBlue;
button.Text = "One";
button.Click += button_Click;
menu.Items.Add(button);
}
private void button_Click(object sender, EventArgs e)
{
MessageBox.Show("Button clicked");
}
注意:此按钮似乎不支持透明背景,因此它看起来不像chrome中的按钮那么好。