2009-03-09 9 views
3

J'ai une image que j'ai besoin d'utiliser dans mon application à plusieurs endroits. Je veux définir l'image juste une fois dans un dictionnaire de ressources, et avoir mes autres fichiers xaml juste cette définition. Je peux La seule chose que je n'ai pas pu comprendre est comment référencer quelque chose défini comme un élément xaml au lieu d'un attribut attribué à l'intérieur d'un attribut xaml.xaml Comment référencer une ressource dynamique non comme un attribut mais comme un élément

Voici mon ResourceDictionary

# resourceDictionary.xaml 

<LinearGradientBrush x:Key="MyGradient" StartPoint="0,0.5" EndPoint="1,0.5"> 
    <GradientStop Color="#A5000000" Offset="0"/> 
    <GradientStop Color="#00000000" Offset="1"/> 
</LinearGradientBrush> 

<Image x:Key="MyImage" Source="MyGlyph.png" Width="20" Height="20" /> 

Donc, dans mon XAML Je sais comment référencer le gradient comme un attribut d'un objet de contrôle

<TextBlock Text="Sample Text" Background="{DynamicResource MessageGradient}"/> 

Mais ce que je veux comprendre sa façon de référence l'image qui est un objet de contrôle complet. Cet exemple crée simplement un bouton avec le texte "{DynamicResource MyImage}" dans le bouton au lieu de l'image.

<!-- Want MyImage to be content of the button --> 
<Button> 
    {DynamicResource MyImage} 
</Button> 

est-il un moyen simple de le faire, ou aura-je créer un modèle de contrôle qui contient juste mon image, puis dans mon XAML une balise d'image qui utilise le modèle de contrôle?

Répondre

5

Puisque vous voulez que l'image soit le contenu du bouton, vous devriez être en mesure de lier cela à la Content propriété:

<Button Content="{DynamicResource MyImage}" /> 
0

Si vous essayez de mettre une image en arrière-plan de tout contrôle

<Button Content="My Button"> 
     <Button.Background> 
      <ImageBrush ImageSource="MyGlyph.png"/> 
     </Button.Background> 
    </Button> 
3
<!-- Want MyImage to be content of the button --> 
<Button> 
    <DynamicResource ResourceKey="MyImage"/> 
</Button> 
Questions connexes