2016-07-31 6 views
0

J'ai un rectangle qui a un masque d'opacité ImageBrush (essentiellement une icône colorée).WPF - Rectangle de taille par son masque d'opacité ImageBrush

Ceci est mon code actuel:

<Rectangle Fill="Black"> 
    <Rectangle.OpacityMask> 
    <ImageBrush ImageSource="/Path/To/Icon.png"/> 
    </Rectangle.OpacityMask> 
</Rectangle> 

Ce produit aucun résultat sans fixer une largeur et une hauteur fixe pour le rectangle. Est-il possible de redimensionner le rectangle en fonction de la taille de l'image ImageBrush?

Merci pour votre aide. Désolé si c'est une question idiote, j'apprends toujours WPF.

Modifier: Pour clarifier les choses, ce que je suis en train de réaliser est le rectangle se comporter même que celle-ci:

<Image Source="/Path/To/Icon.png"/> 

Il doit être dimensionné en fonction des dimensions du fichier source d'image.

Répondre

0

Stretch="None" conserver la taille de l'image. Rectangle avec liaison ActualWidth et ActualHeight redimensionner à partir de ImageBrush taille. Le résultat est le même si nous n'utilisons pas les deux. Dans les deux cas, redimensionnez le rectangle à la taille True ImageBrush. J'espère que je comprends votre problème.

<Rectangle Fill="Black" Width="{Binding ActualWidth, ElementName=image}" Height="{Binding ActualHeight, ElementName=image}"> 
    <Rectangle.OpacityMask> 
     <ImageBrush ImageSource="/Path/To/Icon.png" x:Name="image" Stretch="None"> 
     </ImageBrush> 
    </Rectangle.OpacityMask> 
</Rectangle> 
+0

Merci pour la réponse. Cependant, cela ne semble pas résoudre mon problème. J'ai édité ma question pour clarifier. – Mastah

0
<Rectangle Width="{Binding ActualWidth, ElementName=image}" Height="{Binding ActualHeight, ElementName=image}"> 
    <Rectangle.Fill> 
     <ImageBrush ImageSource="C:\Users\neeraj\Pictures\Img1.jpg" x:Name="image" Stretch="None"> 
     </ImageBrush> 
    </Rectangle.Fill> 
</Rectangle> 

Essayez cet extrait. Je ne suis pas sûr pourquoi vous vouliez le noir de remplissage. Si l'idée était d'avoir un entourage noir, utilisez Background = "Black" sur la grille externe.