Comment faire pour rendre bitmap dans la canvas dans WPF?

J’ai sous- Canvas afin de pouvoir redéfinir sa fonction de Render . J’ai besoin de savoir comment charger un bitmap dans WPF et le restituer sur le canevas. Je suis complètement nouveau dans WPF et je n’ai trouvé aucun tutoriel qui explique comment faire quelque chose d’aussi apparemment sortingvial. Des instructions pas à pas avec des exemples seraient formidables.

Cela devrait vous aider à démarrer:

 class MyCanvas : Canvas { protected override void OnRender (DrawingContext dc) { BitmapImage img = new BitmapImage (new Uri ("c:\\demo.jpg")); dc.DrawImage (img, new Rect (0, 0, img.PixelWidth, img.PixelHeight)); } } 

Dans WPF, il est rare que vous OnRender remplacer OnRender surtout si vous ne vouliez que dessiner un fichier BMP vers un arrière-plan:

       

Si vous souhaitez peindre l’arrière-plan d’une canvas, je vous recommande d’utiliser ImageBrush comme BackgroundBackground , car c’est simple, vous n’avez pas besoin de sous-classe Canvas pour remplacer Onender .

Mais je vais vous donner un code source de démonstration pour ce que vous avez demandé:

Créer une classe (je l’ai appelée ImageCanvas )

  using System.Windows; using System.Windows.Controls; using System.Windows.Media; namespace WpfApplication1 { public class ImageCanvas : Canvas { public ImageSource CanvasImageSource { get { return (ImageSource)GetValue(CanvasImageSourceProperty); } set { SetValue(CanvasImageSourceProperty, value); } } public static readonly DependencyProperty CanvasImageSourceProperty = DependencyProperty.Register("CanvasImageSource", typeof(ImageSource), typeof(ImageCanvas), new FrameworkPropertyMetadata(default(ImageSource))); protected override void OnRender(System.Windows.Media.DrawingContext dc) { dc.DrawImage(CanvasImageSource, new Rect(this.RenderSize)); base.OnRender(dc); } } } 

Maintenant, vous pouvez l’utiliser comme ceci: