using System;
using System.Drawing;
using System.Windows.Forms;
namespace Transparency
{
static class Program
{
[STAThread]
static void Main()
{
Application.Run(new FormTransparency());
}
}
class FormTransparency : Form
{
Image Image;
Point TempLocation;
Point Mouse = Point.Empty;
public FormTransparency()
{
this.StartPosition = FormStartPosition.Manual;
this.Location = new Point(0, 0);
this.TempLocation = this.Location;
this.Image = Image.FromFile("Back.png");
this.ClientSize = Image.Size;
this.FormBorderStyle = FormBorderStyle.None;
this.DoubleBuffered = true;
this.BackColor = SystemColors.Control;
this.TransparencyKey = this.BackColor;
}
protected override void OnKeyPress(KeyPressEventArgs e)
{
if (e.KeyChar == 27) Application.Exit();
}
protected override void OnPaint(PaintEventArgs e)
{
// Я так понимаю проблему можно решить заменой
// CopyFromScreen на что нибудь другое
e.Graphics.CopyFromScreen(TempLocation, Point.Empty, Image.Size);
e.Graphics.DrawImage(Image, new Rectangle(Point.Empty, Image.Size));
}
protected override void OnMouseDown(MouseEventArgs e)
{
Mouse = e.Location;
TempLocation = Location;
}
protected override void OnMouseUp(MouseEventArgs e)
{
Mouse = Point.Empty;
}
protected override void OnMouseMove(MouseEventArgs e)
{
if (!Mouse.IsEmpty)
{
TempLocation.Offset(e.Location);
TempLocation.Offset(-Mouse.X, -Mouse.Y);
Refresh();
Location = TempLocation;
}
}
}
}
Полупрозрачные окна не видят друг друга под собой
Я хочу сделать окна такие же как в Висте, или например у миранды.. Подскажите как сделать чтобы два окна расположенные друг над другом видели друг друга, Буду благодарен если предложите другой вариант как реализовать окошки подобного рода.