Я пишу приложение C#, и я хочу, чтобы у него был плавающий значок на рабочем столе (например, Facebook-мессенджер на мобильном телефоне).Плавающий значок над рабочим столом
Я искал интернет, но не нашел ничего полезного. Любые статьи? Идеи?
Я пишу приложение C#, и я хочу, чтобы у него был плавающий значок на рабочем столе (например, Facebook-мессенджер на мобильном телефоне).Плавающий значок над рабочим столом
Я искал интернет, но не нашел ничего полезного. Любые статьи? Идеи?
Вам нужно создать форму без заголовка и границы и использовать изображение как фон своей формы. Также сделайте область вокруг изображения прозрачной. Затем сделайте форму подвижной.
FormBorderStyle
в None
TopMost
в true
ShowInTaskbar
ложь.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;
Вот изображение, используемое:
И как вы видите в приведенном ниже результате, теперь у нас есть плавающий значок над другими окнами:
Чтобы иметь высокое качество значок с более гладкими краями, посмотрите на этот пост:
Вам нужно создать форму с 'FormBorderStyle' установлен 'None'. Также, если вы хотите использовать изображение для своей формы, установите «BackgroundImage» и установите формы «BackColor» и «TransparencyKey». –