VisualStyleRenderer.GetBackgroundRegion(IDeviceContext, Rectangle) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Devolve a região para o fundo do elemento visual atual.
public:
System::Drawing::Region ^ GetBackgroundRegion(System::Drawing::IDeviceContext ^ dc, System::Drawing::Rectangle bounds);
public System.Drawing.Region GetBackgroundRegion(System.Drawing.IDeviceContext dc, System.Drawing.Rectangle bounds);
member this.GetBackgroundRegion : System.Drawing.IDeviceContext * System.Drawing.Rectangle -> System.Drawing.Region
Public Function GetBackgroundRegion (dc As IDeviceContext, bounds As Rectangle) As Region
Parâmetros
Esta IDeviceContext operação irá usar.
Devoluções
O Region que contém o fundo do elemento visual atual.
Exceções
dc é null.
Exemplos
O exemplo de código seguinte demonstra como usar o GetBackgroundRegion método num controlo personalizado. Este exemplo serve GetBackgroundRegion para obter Region o elemento da barra de título da janela devolvido pela VisualStyleElement.Window.Caption.Active propriedade. Este Region é usado para definir a propriedade Control.Region do controlo, de modo que a barra de título da janela apareça com os cantos arredondados definidos pelo estilo visual padrão Windows XP. Este exemplo de código faz parte de um exemplo maior fornecido para a VisualStyleRenderer visão geral da classe.
// Calculate and set the clipping region for the control
// so that the corners of the title bar are rounded.
private:
void SetClipRegion()
{
if (!Application::RenderWithVisualStyles)
{
return;
}
Graphics^ g = this->CreateGraphics();
// Get the current region for the window caption.
if (SetRenderer(windowElements["windowCaption"]))
{
System::Drawing::Region^ clipRegion =
renderer->GetBackgroundRegion(g,
elementRectangles["windowCaption"]);
// Get the client rectangle, but exclude the region
// of the window caption.
int height = (int)clipRegion->GetBounds(g).Height;
System::Drawing::Rectangle nonCaptionRect = Rectangle(
ClientRectangle.X, ClientRectangle.Y + height,
ClientRectangle.Width, ClientRectangle.Height - height);
// Add the rectangle to the caption region, and
// make this region the form's clipping region.
clipRegion->Union(nonCaptionRect);
this->Region = clipRegion;
}
}
// Calculate and set the clipping region for the control
// so that the corners of the title bar are rounded.
private void SetClipRegion()
{
if (!Application.RenderWithVisualStyles)
{
return;
}
using (Graphics g = this.CreateGraphics())
{
// Get the current region for the window caption.
if (SetRenderer(windowElements["windowCaption"]))
{
Region clipRegion = renderer.GetBackgroundRegion(
g, elementRectangles["windowCaption"]);
// Get the client rectangle, but exclude the region
// of the window caption.
int height = (int)clipRegion.GetBounds(g).Height;
Rectangle nonCaptionRect = new Rectangle(
ClientRectangle.X,
ClientRectangle.Y + height,
ClientRectangle.Width,
ClientRectangle.Height - height);
// Add the rectangle to the caption region, and
// make this region the form's clipping region.
clipRegion.Union(nonCaptionRect);
this.Region = clipRegion;
}
}
}
' Calculate and set the clipping region for the control
' so that the corners of the title bar are rounded.
Private Sub SetClipRegion()
If Not Application.RenderWithVisualStyles Then
Return
End If
Using g As Graphics = Me.CreateGraphics()
' Get the current region for the window caption.
If SetRenderer(windowElements("windowCaption")) Then
Dim clipRegion As Region = _
renderer.GetBackgroundRegion(g, _
elementRectangles("windowCaption"))
' Get the client rectangle, but exclude the
' region of the window caption.
Dim height As Integer = _
CInt(clipRegion.GetBounds(g).Height)
Dim nonCaptionRect As _
New Rectangle(ClientRectangle.X, _
ClientRectangle.Y + height, _
ClientRectangle.Width, _
ClientRectangle.Height - height)
' Add the rectangle to the caption region, and
' make this region the form's clipping region.
clipRegion.Union(nonCaptionRect)
Me.Region = clipRegion
End If
End Using
End Sub
Observações
Este método pode ser usado para obter o Region resultado de um elemento de estilo visual que tenha partes parcialmente transparentes ou com mistura alfa no fundo.