2012-05-23 6 views
3

J'essaye de peindre sur ma fenêtre principale. J'utilise cet exemple de code:Peinture sur la MainWindow dans WPF

MainWindow.xaml.cs

namespace WpfApplication4 
{ 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
     } 

     protected override void OnRender(DrawingContext drawingContext) 
     { 
      Trace.WriteLine("OnRender"); 

      drawingContext.DrawRectangle(Brushes.Red, new Pen(Brushes.Black, 5), new Rect(20, 20, 250, 250)); 

      base.OnRender(drawingContext); 
     } 
    } 
} 

MainWindow.xaml

<Window x:Class="WpfApplication4.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="400" Width="600"> 
</Window> 

Dans la fenêtre de sortie, je vois le message "OnRender", mais rien est tiré. MainWindow and Output

Qu'est-ce que je fais mal?

+0

Définissez 'Background =" Transparent "' dans le fichier XAML de Windows. Et appelez toujours 'base.OnRender' avant vos propres dessins, puisque vous voulez dessiner * sur * les dessins de classe de base (le cas échéant). – Clemens

+1

@Clemens merci, voulez-vous poster une réponse? – David

Répondre

5

Définissez Background="Transparent" dans le fichier XAML de Windows.

Et toujours appeler base.OnRender avant vos propres dessins, puisque vous voulez dessiner sur les dessins de classe de base (le cas échéant).

Questions connexes