Comment rendre le contenu XAML isolé au courant des contrôles personnalisés
-
27-09-2019 - |
Question
J'ai un fichier XAML lâche ...
<Style
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyNamespace"
TargetType="{x:Type local:CustomControl}">
<Setter Property="HoverOpacity" Value="1.0"/>
</Style>
... que je veux charger à l'exécution. Quand je ne je reçois une exception indiquant, « référence type ne peut pas trouver le type public nommé « CustomControl ». » Comment puis-je faire le XAML lâche au courant de mon espace de noms?
Je dois utiliser HoverOpacity
qui est une propriété de dépendance de la CustomControl
. Voici le code que je suis actuellement en utilisant pour charger le XAML:
var resource = Application.GetResourceStream(new Uri("pack://application:,,,/Assets/HoverStyle.xaml"));
XamlReader.Load(resource.Stream);
BTW, je me rends compte que le XAML est simple et je ne pouvais tout simplement insérer le Style
dans le code, mais ceci est un monde bonjour XAML; sa va devenir beaucoup plus complexe, impliquant des animations et autres.
P.S. Une autre solution serait un moyen soit attacher un fichier XAML à un contrôle personnalisé dérivé du panneau (qui ne tombe pas en panne Visual Studio 2008) ou un moyen d'attacher facilement les déclencheurs, les données-déclencheurs, entrée-actions, et les actions de sortie de contrôles personnalisés.
La solution
Mon Dieu bon sang, je compris. Je avais besoin de spécifier le nom de l'assemblage avec l'espace de noms; comme ceci:
<Style
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyNamespace;assembly=MyAssembly"
TargetType="{x:Type local:CustomControl}">
<Setter Property="HoverOpacity" Value="1.0"/>
</Style>
Je vais donner crédit à la réponse à tous ceux qui pourraient répondre à ma « post-scriptum » question dans les deux prochains jours. Cette situation semble tout un peu humide, donc je serais vraiment intéressé par des solutions de rechange.
Merci:)