Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Celem testowania trafień jest określenie, czy kursor znajduje się nad danym obiektem, takim jak ikona czy przycisk.
Przykład
Poniższy przykład tworzy region w kształcie plusa, tworząc związek dwóch prostokątnych regionów. Załóżmy, że zmienna point przechowuje lokalizację ostatniego kliknięcia. Kod sprawdza, czy point znajduje się w regionie w kształcie plusa. Jeśli punkt znajduje się w regionie (trafienie), region jest wypełniony nieprzezroczystą czerwoną szczotką. W przeciwnym razie region jest wypełniony półprzezroczystą czerwoną farbą.
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);
Dim point As 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.
Dim solidBrush As New SolidBrush(Color.Black)
Dim region1 As New [Region](New Rectangle(50, 0, 50, 150))
Dim region2 As 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) Then
' 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)
End If
e.Graphics.FillRegion(solidBrush, region1)
Kompilowanie kodu
Powyższy przykład jest przeznaczony do użycia z formularzami systemu Windows i wymaga parametrów PaintEventArgse, które są parametrami PaintEventHandler.
Zobacz także
- Region
- Regiony w GDI+
- Instrukcje: używanie wycinków z regionem
.NET Desktop feedback