Show / Hide Table of Contents

Практическое руководство. Проверка нахождения указателя мыши в заданной области

Проверка попадания предназначена для определения, находится ли курсор над данным объектом, например значок или кнопки.

Пример

В следующем примере создается область креста, являющаяся объединением двух прямоугольников. Предполагается, что переменная point содержит расположение последнего щелчка. Код проверяет, является ли point находится в регионе креста. Если точка находится в регионе (нажатия), область заполняется непрозрачной красной кистью. В противном случае область заполняется полупрозрачные компоненты Красная кисть.

Point point = new Point(60, 10);

// Assume that the variable "point" contains the location of the
// most recent mouse click.
// To simulate a hit, assign (60, 10) to point.
// To simulate a miss, assign (0, 0) to point.

SolidBrush solidBrush = new SolidBrush(Color.Black);
Region region1 = new Region(new Rectangle(50, 0, 50, 150));
Region region2 = new Region(new Rectangle(0, 50, 150, 50));

// Create a plus-shaped region by forming the union of region1 and 
// region2.
// The union replaces region1.
region1.Union(region2);

if (region1.IsVisible(point, e.Graphics))
{
    // The point is in the region. Use an opaque brush.
    solidBrush.Color = Color.FromArgb(255, 255, 0, 0);
}
else
{
    // The point is not in the region. Use a semitransparent brush.
    solidBrush.Color = Color.FromArgb(64, 255, 0, 0);
}

e.Graphics.FillRegion(solidBrush, region1);

Компиляция кода

Предыдущий пример предназначен для работы с Windows Forms и требует PaintEventArgs e, который является параметром PaintEventHandler.

См. также

  • Region
  • Области в GDI+
  • Практическое руководство. Обрезка изображения по границам области обрезки
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX