Я создаю приложение WPF для выбора экрана. Я пытаюсь нарисовать красный прямоугольник на моем экране. Я не вижу никаких проблем, когда рисую на своем основном мониторе, выбор в границах. Я вижу проблему с моим дополнительным монитором, левая и верхняя стороны не видны.
Вот код, который у меня есть:
monitor_index is nothing but the index of the screen selection.
{ System.Windows.Forms.Screen screen = System.Windows.Forms.Screen.AllScreens[Convert.ToInt32(monitor_index)];
var StartPoint = new System.Drawing.Point(0, 0);
var EndPoint = new System.Drawing.Point(screen.Bounds.Width, screen.Bounds.Height);
selectedAreaControl = new Form
{
TopMost = true,
ShowInTaskbar = false,
BackColor = Color.LightGreen,
TransparencyKey = Color.LightGreen,
FormBorderStyle = FormBorderStyle.None,
Name="redborder"
};
selectedAreaControl.Paint += new PaintEventHandler(OnSelectedAreaPaint);
selectedAreaControl.StartPosition = FormStartPosition.Manual;
selectedAreaControl.Location = screen.Bounds.Location;
selectedAreaControl.Bounds = new Rectangle(selectedAreaControl.Location, new Size((EndPoint.X - StartPoint.X), (EndPoint.Y - StartPoint.Y)));
selectedAreaControl.Left = selectedAreaControl.Location.X + StartPoint.X;
selectedAreaControl.Top = selectedAreaControl.Location.Y + StartPoint.Y;
selectedAreaControl.Show();
}
private void OnSelectedAreaPaint(object sender, PaintEventArgs e)
{
Rectangle rect = selectedAreaControl.ClientRectangle;
Pen pen = new Pen(new SolidBrush(borderColor), borderWidth);
e.Graphics.DrawRectangle(pen, rect);
}
Посмотрите на это: Здесь вы можете видеть левую и верхнюю границу, которую не видно.
Вот как это выглядит, когда я на основном экране.