如何在标题栏上放置按钮?

问题描述 投票:0回答:2

我正在尝试制作一个显示用户菜单的按钮,如 Google Chrome 中所示:

enter image description here

没有传统的方法可以做到这一点,所以我环顾四周,发现执行此操作的每种方法要么过时,要么不起作用(可能是因为它已经过时了!)。

这是我找到的第一个链接,但它适用于 Windows Aero 关闭的情况,可能不适用于 Windows 8、8.1 或 10,而且效果不是很好。这个 Stack Overflow 问题的答案本质上也是相同的代码:

enter image description here

航空开启:

enter image description here

我也在这里发现了一些问题,但是提到的技术不起作用。 其中一个答案指向这篇MSDN文章,它似乎提供了我想要的一些功能,但代码是

这在 VB.NET 中是否可能没有任何问题?如果可以,如何实现?

这是使用 VB.NET 和 Windows Forms,目标操作系统是 Windows 7 及更高版本。

vb.net winforms titlebar
2个回答
2
投票

看看这两个链接:

在 Vista 上的非客户端区域添加标题按钮

.Net ActiveButtons 库

自从我使用 VB.Net 以来已经有一段时间了,所以如果你不介意的话,我将添加一个 C# 代码示例(基本上我从第一个链接中获取了示例并尝试了它,它似乎工作正常)

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中的按钮。


-1
投票

最新版本的.Net ActiveButtons 已分叉。这应该会有所帮助(尽管它最近也已存档在 GitHub 上) https://github.com/tomaszmalik/ActiveButtons.Net

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.