2014-04-24 2 views
0

Après avoir recherché la réponse dans la documentation et les forums de Microsoft, je suis à court de ressources. Je charge une image png comme arrière-plan pour un inkCanvas (WPF) qui fonctionne bien, cependant, il redimensionne toujours l'image pour tenir dans la toile, malgré la taille de l'image ..WPF C# Empêcher le redimensionnement d'un arrière-plan lorsqu'il est chargé en tant qu'arrière-plan dans un inkCanvas

Voici ma dernière tentative sans succès :

  BitmapImage ii = new BitmapImage(new Uri(path)); 
      Image img = new Image(); 

      img.Stretch = Stretch.None; 
      img.Source = ii; 
      InkCanvas1.Background = new ImageBrush(ii); 

Voici ce qu'il ressemble à l'aide Stretch.None et Stretch.Fill

enter image description here

Voici ce que je suis en train de réaliser:

enter image description here

Est-ce que cela peut être fait?

+0

Vous voulez ImageBrush étendre au-delà de la toile d'encre? –

+0

Pas nécessairement, je voudrais que l'image ait un format d'image adapté soit à la largeur maximale, soit à la hauteur maximale et à l'espace blanc en haut ou en bas de la toile (selon l'image paysage ou portrait). –

+0

Pouvez-vous poster un instantané à quoi ressemble-t-il en ce moment? Et quelle est la sortie souhaitée? –

Répondre

2

Le problème est que vous essayez de définir des propriétés sur un objet Image que vous n'utilisez pas en ignorant les mêmes paramètres sur le ImageBrush que vous utilisez. Le Image dans ce cas est juste jeté et le ImageBrush utilise la même image source. Définissez la propriété Stretch sur la place ImageBrush:

BitmapImage ii = new BitmapImage(new Uri(path)); 

    ImageBrush imageBrush = new ImageBrush(ii); 
    imageBrush.Stretch = Stretch.Uniform; 
    InkCanvas1.Background = imageBrush; 
+0

Parfait !! Merci de me faire sentir comme un idiot! :) –

Questions connexes