2010-09-10 4 views
2

J'ai un contrôle Image dans un ContentControl personnalisé que j'utilise pour appliquer certaines transformations (mise à l'échelle et traduction à travers le RenderTransform). Le problème est qu'avec des images plus grandes que la zone de contrôle, si je fais défiler ou dézoomer, tout est coupé comme dans la fenêtre d'origine.WPF Image control clipping

Existe-t-il un moyen de forcer l'image à se dessiner complètement? (déjà essayé de définir ClipToBounds à false)

Par ailleurs, si j'essaie de mettre une image en arrière-plan d'une toile, cela fonctionne correctement.

Modifier, voici quelques détails.

Mon contrôle:

public class CustomControl: ContentControl 

La phase d'installation:

source = VisualTreeHelper.GetChild(this, 0) as FrameworkElement; 
... 
source.RenderTransform = this.transformGroup; 

Le groupe de transformation est faite d'une traduction et transformer une échelle.

La partie XAML est la suivante:

<ui:CustomControl ClipToBounds="True"> 
    <Image 
     Source="{Binding Path=BackgroundImage}" 
     Stretch="None" 
     ClipToBounds="False"/> 
</ui:CustomControl> 
+3

Pouvez-vous publier le code XAML approprié? À quel élément appliquez-vous les transformations, l'image ou le contrôle du contenu? –

Répondre

4

Je pense avoir trouvé une solution. Envelopper mon image dans un canevas a résolu le problème, probablement en raison de la façon dont la taille du canevas est calculée.

0

Vous devez avoir une visionneuse de défilement dans votre contrôle personnalisé. Dans la visionneuse de défilement inclure le contrôle de l'image.

HTH