Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Ao animar um gráfico simples, os usuários às vezes, podem encontrar cintilação ou outros efeitos visuais indesejáveis. Uma maneira de limitar esse problema é usar o "bitblt" processar o elemento gráfico. BitBlt é a "transferência de blocos de bits" os dados de cor de um retângulo de origem de pixels para um retângulo de destino de pixels.
Com o Windows Forms, bitblt é realizada por meio de CopyFromScreen método o Graphics classe. Nos parâmetros do método, você pode especificar a origem e destino (como pontos), o tamanho da área a ser copiado e o objeto graphics utilizada para desenhar a nova forma.
No exemplo a seguir, uma forma é desenhada no formulário em seu Paint manipulador de eventos. Então, a CopyFromScreen método é usado para duplicar a forma.
Observação |
|---|
A definição do formulário DoubleBuffered propriedade para true fará com que o código baseado em elementos gráficos na Paint evento ser buffer duplo. Embora isso não terá qualquer ganho de desempenho discernível ao usar o código a seguir, é algo ter em mente ao trabalhar com código de manipulação de gráficos mais complexo. |
Exemplo
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As _
System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
' Draw a circle with a bar on top.
e.Graphics.FillEllipse(Brushes.DarkBlue, New Rectangle _
(10, 10, 60, 60))
e.Graphics.FillRectangle(Brushes.Khaki, New Rectangle _
(20, 30, 60, 10))
' Copy the graphic to a new location.
e.Graphics.CopyFromScreen(New Point(10, 10), New Point _
(100, 100), New Size(70, 70))
End Sub
private void Form1_Paint(System.Object sender,
System.Windows.Forms.PaintEventArgs e)
{
e.Graphics.FillEllipse(Brushes.DarkBlue, new
Rectangle(10,10,60,60));
e.Graphics.FillRectangle(Brushes.Khaki, new
Rectangle(20,30,60,10));
e.Graphics.CopyFromScreen(new Point(10, 10), new Point(100, 100),
new Size(70, 70));
}
Compilando o código
O código acima é executado no formulário de Paint manipulador de eventos para que os gráficos persistem quando o formulário é redesenhado. Como tal, não chamar métodos relacionados a elementos gráficos do Load o manipulador de eventos, porque o conteúdo desenhado não ser redesenhado se o formulário é redimensionado ou obscurecido por outro formulário.
Observação