Поделиться через


Region Класс

Определение

Описывает интерьер графической фигуры, состоящей из прямоугольников и путей. Этот класс не может быть унаследован.

public ref class Region sealed : MarshalByRefObject, IDisposable
public sealed class Region : MarshalByRefObject, IDisposable
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class Region : MarshalByRefObject, IDisposable
type Region = class
    inherit MarshalByRefObject
    interface IDisposable
[<System.Runtime.InteropServices.ComVisible(false)>]
type Region = class
    inherit MarshalByRefObject
    interface IDisposable
Public NotInheritable Class Region
Inherits MarshalByRefObject
Implements IDisposable
Наследование
Атрибуты
Реализации

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика событий Paint. В примере кода показано, как использовать Data из одного объекта RegionData, чтобы задать Data для другого RegionData.

private:
   void DemonstrateRegionData2( PaintEventArgs^ e )
   {
      //Create a simple region.
      System::Drawing::Region^ region1 = gcnew System::Drawing::Region( Rectangle(10,10,100,100) );

      // Extract the region data.
      System::Drawing::Drawing2D::RegionData^ region1Data = region1->GetRegionData();
      array<Byte>^data1;
      data1 = region1Data->Data;

      // Create a second region.
      System::Drawing::Region^ region2 = gcnew System::Drawing::Region;

      // Get the region data for the second region.
      System::Drawing::Drawing2D::RegionData^ region2Data = region2->GetRegionData();

      // Set the Data property for the second region to the Data from the first region.
      region2Data->Data = data1;

      // Construct a third region using the modified RegionData of the second region.
      System::Drawing::Region^ region3 = gcnew System::Drawing::Region( region2Data );

      // Dispose of the first and second regions.
      delete region1;
      delete region2;

      // Call ExcludeClip passing in the third region.
      e->Graphics->ExcludeClip( region3 );

      // Fill in the client rectangle.
      e->Graphics->FillRectangle( Brushes::Red, this->ClientRectangle );
      delete region3;
   }
private void DemonstrateRegionData2(PaintEventArgs e)
{

    //Create a simple region.
    Region region1 = new Region(new Rectangle(10, 10, 100, 100));

    // Extract the region data.
    System.Drawing.Drawing2D.RegionData region1Data = region1.GetRegionData();
    byte[] data1;
    data1 = region1Data.Data;

    // Create a second region.
    Region region2 = new Region();

    // Get the region data for the second region.
    System.Drawing.Drawing2D.RegionData region2Data = region2.GetRegionData();

    // Set the Data property for the second region to the Data from the first region.
    region2Data.Data = data1;

    // Construct a third region using the modified RegionData of the second region.
    Region region3 = new Region(region2Data);

    // Dispose of the first and second regions.
    region1.Dispose();
    region2.Dispose();

    // Call ExcludeClip passing in the third region.
    e.Graphics.ExcludeClip(region3);

    // Fill in the client rectangle.
    e.Graphics.FillRectangle(Brushes.Red, this.ClientRectangle);

    region3.Dispose();
}
Private Sub DemonstrateRegionData2(ByVal e As PaintEventArgs)

    'Create a simple region.
    Dim region1 As New Region(New Rectangle(10, 10, 100, 100))

    ' Extract the region data.
    Dim region1Data As System.Drawing.Drawing2D.RegionData = region1.GetRegionData
    Dim data1() As Byte
    data1 = region1Data.Data

    ' Create a second region.
    Dim region2 As New Region

    ' Get the region data for the second region.
    Dim region2Data As System.Drawing.Drawing2D.RegionData = region2.GetRegionData()

    ' Set the Data property for the second region to the Data from the first region.
    region2Data.Data = data1

    ' Construct a third region using the modified RegionData of the second region.
    Dim region3 As New Region(region2Data)

    ' Dispose of the first and second regions.
    region1.Dispose()
    region2.Dispose()

    ' Call ExcludeClip passing in the third region.
    e.Graphics.ExcludeClip(region3)

    ' Fill in the client rectangle.
    e.Graphics.FillRectangle(Brushes.Red, Me.ClientRectangle)

    region3.Dispose()

End Sub

Комментарии

Область масштабируема, так как ее координаты указываются в координатах мира. Однако на поверхности рисования его интерьер зависит от размера и формы пикселей, представляющих его. Приложение может использовать регионы для вырезки выходных данных операций рисования. Эти регионы называются вырезки регионов. Дополнительные сведения об использовании регионов для вырезки см. в разделе Практическое руководство. Использование обрезки срегиона.

Приложение также может использовать регионы в операциях с хит-тестированием, таких как проверка того, пересекается ли точка или прямоугольник в регионе. Дополнительные сведения об использовании регионов для хит-тестирования см. в разделе Практическое руководство. Использование тестирования попаданий с помощьюрегиона.

Приложение может заполнить регион с помощью метода Graphics.FillRegion и объекта Brush.

Заметка

В .NET 6 и более поздних версияхпакет System.Drawing.Common, который включает этот тип, поддерживается только в операционных системах Windows. Использование этого типа в кроссплатформенных приложениях вызывает предупреждения во время компиляции и исключения во время выполнения. Дополнительные сведения см. в статье System.Drawing.Common, поддерживаемой только в Windows.

Конструкторы

Region()

Инициализирует новый Region.

Region(GraphicsPath)

Инициализирует новый Region с указанным GraphicsPath.

Region(Rectangle)

Инициализирует новый Region из указанной структуры Rectangle.

Region(RectangleF)

Инициализирует новый Region из указанной структуры RectangleF.

Region(RegionData)

Инициализирует новый Region из указанных данных.

Методы

Clone()

Создает точную копию этого Region.

Complement(GraphicsPath)

Обновляет этот Region, чтобы содержать часть указанного GraphicsPath, которая не пересекается с этим Region.

Complement(Rectangle)

Обновляет эту Region, чтобы она содержала часть указанной Rectangle структуры, которая не пересекается с этим Region.

Complement(RectangleF)

Обновляет эту Region, чтобы она содержала часть указанной RectangleF структуры, которая не пересекается с этим Region.

Complement(Region)

Обновляет этот Region, чтобы содержать часть указанного Region, которая не пересекается с этим Region.

CreateObjRef(Type)

Создает объект, содержащий все соответствующие сведения, необходимые для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

(Унаследовано от MarshalByRefObject)
Dispose()

Освобождает все ресурсы, используемые этим Region.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Equals(Region, Graphics)

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

Exclude(GraphicsPath)

Обновляет этот Region, чтобы содержать только часть его интерьера, которая не пересекается с указанным GraphicsPath.

Exclude(Rectangle)

Обновляет этот Region, чтобы содержать только часть его интерьера, которая не пересекается с указанной Rectangle структурой.

Exclude(RectangleF)

Обновляет этот Region, чтобы содержать только часть его интерьера, которая не пересекается с указанной RectangleF структурой.

Exclude(Region)

Обновляет этот Region, чтобы содержать только часть его интерьера, которая не пересекается с указанным Region.

Finalize()

Позволяет объекту пытаться освободить ресурсы и выполнять другие операции очистки перед его восстановлением сборкой мусора.

FromHrgn(IntPtr)

Инициализирует новый Region из дескриптора в указанный существующий регион GDI.

GetBounds(Graphics)

Получает RectangleF структуру, представляющую прямоугольник, ограничивающий этот Region на поверхности рисования объекта Graphics.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetHrgn(Graphics)

Возвращает дескриптор Windows для этого Region в указанном графическом контексте.

GetLifetimeService()
Устаревшие..

Извлекает текущий объект службы времени существования, который управляет политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
GetRegionData()

Возвращает RegionData, представляющую сведения, описывающие этот Region.

GetRegionScans(Matrix)

Возвращает массив структур RectangleF, приблизительных к этому Region после применения указанного преобразования матрицы.

GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
InitializeLifetimeService()
Устаревшие..

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
Intersect(GraphicsPath)

Обновляет этот Region на пересечение самого себя с указанным GraphicsPath.

Intersect(Rectangle)

Обновляет этот Region на пересечение самого себя с указанной Rectangle структурой.

Intersect(RectangleF)

Обновляет этот Region на пересечение самого себя с указанной RectangleF структурой.

Intersect(Region)

Обновляет этот Region на пересечение самого себя с указанным Region.

IsEmpty(Graphics)

Проверяет, имеет ли этот Region пустой интерьер на указанной поверхности рисования.

IsInfinite(Graphics)

Проверяет, имеет ли этот Region бесконечный интерьер на указанной поверхности рисования.

IsVisible(Int32, Int32, Graphics)

Проверяет, содержится ли указанная точка в этом объекте Region при рисовании с помощью указанного объекта Graphics.

IsVisible(Int32, Int32, Int32, Int32)

Проверяет, содержится ли любая часть указанного прямоугольника в этом Region.

IsVisible(Int32, Int32, Int32, Int32, Graphics)

Проверяет, содержится ли любая часть указанного прямоугольника в этом Region при рисовании с помощью указанного Graphics.

IsVisible(Point)

Проверяет, содержится ли указанная Point структура в этом Region.

IsVisible(Point, Graphics)

Проверяет, содержится ли указанная Point структура в этом Region при рисовании с помощью указанного Graphics.

IsVisible(PointF)

Проверяет, содержится ли указанная PointF структура в этом Region.

IsVisible(PointF, Graphics)

Проверяет, содержится ли указанная PointF структура в этом Region при рисовании с помощью указанного Graphics.

IsVisible(Rectangle)

Проверяет, содержится ли любая часть указанной Rectangle структуры в этом Region.

IsVisible(Rectangle, Graphics)

Проверяет, содержится ли любая часть указанной Rectangle структуры в этом Region при рисовании с помощью указанной Graphics.

IsVisible(RectangleF)

Проверяет, содержится ли любая часть указанной RectangleF структуры в этом Region.

IsVisible(RectangleF, Graphics)

Проверяет, содержится ли любая часть указанной RectangleF структуры в этом Region при рисовании с помощью указанной Graphics.

IsVisible(Single, Single)

Проверяет, содержится ли указанная точка в этой Region.

IsVisible(Single, Single, Graphics)

Проверяет, содержится ли указанная точка в этом Region при рисовании с помощью указанного Graphics.

IsVisible(Single, Single, Single, Single)

Проверяет, содержится ли любая часть указанного прямоугольника в этом Region.

IsVisible(Single, Single, Single, Single, Graphics)

Проверяет, содержится ли любая часть указанного прямоугольника в этом Region при рисовании с помощью указанного Graphics.

MakeEmpty()

Инициализирует этот Region пустой интерьер.

MakeInfinite()

Инициализирует этот объект Region в бесконечном интерьере.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неглубокую копию текущего объекта MarshalByRefObject.

(Унаследовано от MarshalByRefObject)
ReleaseHrgn(IntPtr)

Освобождает дескриптор Region.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
Transform(Matrix)

Преобразует этот Region указанным Matrix.

Translate(Int32, Int32)

Смещает координаты этого Region по указанному количеству.

Translate(Single, Single)

Смещает координаты этого Region по указанному количеству.

Union(GraphicsPath)

Обновляет этот Region для объединения себя и указанного GraphicsPath.

Union(Rectangle)

Обновляет этот Region для объединения себя и указанной Rectangle структуры.

Union(RectangleF)

Обновляет этот Region для объединения себя и указанной RectangleF структуры.

Union(Region)

Обновляет этот Region для объединения себя и указанного Region.

Xor(GraphicsPath)

Обновляет этот Region в объединение минус пересечение самого себя с указанным GraphicsPath.

Xor(Rectangle)

Обновляет этот Region в объединение минус пересечение самого себя с указанной Rectangle структурой.

Xor(RectangleF)

Обновляет этот Region в объединение минус пересечение самого себя с указанной RectangleF структурой.

Xor(Region)

Обновляет этот Region в объединение минус пересечение самого себя с указанным Region.

Применяется к

См. также раздел