2010-07-22 13 views
1

J'ai environ 30 vues et machines virtuelles correspondantes dans mon application. J'ai un HelpButton à côté de la plupart des contrôles utilisateur qui donne une description de ce que le champ est pour. Lorsque l'utilisateur clique sur ce Button, un Popup s'ouvre et donne la description. Quel sera le meilleur moyen de rendre cette fonctionnalité réutilisable dans toutes les vues?Aide réutilisable Bouton et aide contextuelle

J'ai créé un ControlTemplate pour le HelpButton et l'aide Popup mais puis-je aller plus loin que cela? Merci.

<Style x:Key="HelpButton" TargetType="{x:Type Button}" > 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type Button}"> 
       <Ellipse Focusable="True" Height="16" Width="16"> 
        <Ellipse.Fill> 
         <ImageBrush ImageSource="../../Resources/Icons/Help.png" /> 
        </Ellipse.Fill> 
       </Ellipse> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Répondre

1

Je vois que ça a été un moment que cette question a été posée, mais je pensais que je répondais au cas où quelqu'un d'autre vient sur ce problème et est à la recherche d'une solution.

le mettre dans un ResourceDictionary dans un Resources.xaml séparé qui est accessible à partir de tous vos autres vues:

<ResourceDictionary xmlns...> 
    <Style x:Key="HelpButton" TargetType="{x:Type Button}" > 
     ... 
    </Style> 
</ResourceDictionary> 

utiliser ensuite de votre section Ressources (comme vous l'avez fait sans doute avant) dans votre XAML comme ceci:

<UserControl xmlns...> 
    <UserControl.Resources> 
     <ResourceDictionary Source="Resources.xaml"/> 
    </UserControl.Resources> 

    <Button Style="{StaticResource HelpButton}" /> 
</UserControl>