2010-06-12 5 views
0

Je viens de commencer sur le framework .net compact. Je veux dessiner un champ de Sudoku sur l'écran. Alors je pose un PictureBox et défini une méthode pour l'événement Paint:Créer un contrôle personnalisé dessiné pour .net compact framework

private void pictureBoxPlayfield_Paint(object sender, PaintEventArgs e) 
{ 
    // use e.Graphics to draw the grid, numbers and cursor 
} 

Cela fonctionne, mais vous pouvez voir que la grille est dessinée. Donc ma question est, quelle est la bonne/meilleure façon de créer un tel contrôle personnalisé? Y at-il peut-être un moyen d'activer le double tampon?

Répondre

2

Il n'existe pas de prise en charge intégrée de la double mise en mémoire tampon dans le cadre compact. Vous pouvez l'ajouter vous-même, PictureBox prend déjà en charge la propriété Image. Créez un bitmap dans le constructeur et affectez-le à Image. Vous n'avez plus besoin de l'événement Paint, celui fourni par PictureBox le dessine déjà à l'écran. Chaque fois que l'image doit être modifiée, créez un objet Graphics avec Graphics.FromImage(), en passant l'image du PB et dessinez votre contenu. Appelez la méthode Invalidate() du PB pour lui indiquer qu'il doit redessiner l'image. Si vous voyez toujours le scintillement, remplacez la méthode OnPaintBackground() du PB et ne faites rien. La seule autre considération est la gestion du redimensionnement, vous auriez besoin d'un Bitmap plus grand ou plus petit. Pas si sûr que ce serait nécessaire pour un match.

+0

Fonctionne très bien, merci :) – Hinek

Questions connexes