gpt4 book ai didi

c# - 桌面上方的 float 图标

转载 作者:行者123 更新时间:2023-11-30 20:39:16 26 4
gpt4 key购买 nike

我正在编写一个 C# 应用程序,我希望它在桌面上有一个 float 图标(就像移动设备中的 Facebook Messenger)。

我一直在互联网上搜索,但找不到任何有用的东西。有文章吗?想法?

最佳答案

您需要创建一个没有标题栏和边框的表单,并使用图像作为表单的背景。还要使图像周围的区域透明。然后使表格可移动。

  • 将表单 FormBorderStyle 设置为 None
  • 将表单 TopMost 设置为 true
  • 您还可以将 ShowInTaskbar 设置为 false。
  • 将图像设置为 BackgroundImage 并将 BackgroundImageLayout 设置为 Center
  • 为表单设置合适的 BackColor,例如,如果您的 BackGroundImage 周围有 Magenta 颜色,请设置 BackColor 形式为 Magenta
  • 将表单的 TransparencyKey 设置为您为 BackColor 选择的颜色

这样你就会有一个形状,例如圆形(如果你的背景图片是圆形)。

然后要通过鼠标左键拖动使窗体移动,编写以下代码:

public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;

[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();

protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}

并且不要忘记添加 using System.Runtime.InteropServices;

这是使用的图像:

enter image description here

正如您在下面的结果中看到的,现在我们在其他窗口上方有一个 float 图标:

enter image description here

要获得边缘更平滑的高质量图标,请查看这篇文章:

关于c# - 桌面上方的 float 图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34481970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com