2010-08-22 4 views
2

J'ai créé mon contrôle qui ressemble à ce queComment définir l'info-bulle pour le contrôle de l'utilisateur (à partir du fichier de style)

<UserControl BorderBrush="#A9C2DE" HorizontalAlignment="Left" x:Class="WPFDiagramDesignerControl.Components.UcWBSBlock" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Height="86" Width="151" > 

<UserControl.Resources> 
    <ResourceDictionary Source="Tooltip.xaml"/> 
</UserControl.Resources> 
    <Grid x:Name="MainGrid"> 

    <TextBox Name="txtBox" Style="{StaticResource DefaultStyle}" > 
    </TextBox> 

</Grid> 

J'ai aussi un fichier avec style pour infobulle « Tooltip.xaml » Comment puis-je utiliser ce style pour UserControl entier? Habituellement Je l'ai fait avec ce code

<TextBox ToolTip="{StaticResource tooltipname}"/> 

Mais il était facile parce que le fichier avec le style était dans le dictionnaire des ressources de contrôle où je mis textbox. Cependant, je ne peux pas faire qqch comme ça

<UserControl BorderBrush="#A9C2DE" HorizontalAlignment="Left" ToolTip="{StaticResource tooltipname"}/> 

Parce qu'à ce point mon style est pas dicionary encore des ressources. je tentais d'utiliser cette syntaxe

<UserControl.ToolTip> </UserControl.ToolTip> 

mais je ne Konow comment dois-je faire référence à des ressources statiques

Peut-être qu'il est question boiteux mais je ne Konow juste comment le faire :)

Répondre

1

Une option consiste à utiliser simplement DynamicResource au lieu de StaticResource de reporter la recherche jusqu'à l'exécution, puis utilisez la syntaxe d'attribut:

<UserControl ... ToolTip="{DynamicResource tooltipname}" ... 

Vous pouvez als o écrire StaticResourceExtension en utilisant la syntaxe de l'élément de sorte que vous pouvez l'écrire après la section Ressources:

<UserControl.Resources> 
    <ResourceDictionary Source="Tooltip.xaml"/> 
</UserControl.Resources> 
<UserControl.ToolTip> 
    <StaticResourceExtension ResourceKey="tooltipname"/> 
</UserControl.ToolTip> 
+0

Merci beaucoup :) Cela fonctionne très bien – germancoder

Questions connexes