Comment déboguer DependencyProperty.Unsetvalue des erreurs lors de la InnerException est null
J'ai une connexion personnalisée usercontrol qui est normal d'un contrôle textbox et un passwordbox.
Mélange refuse de coopérer avec le PasswordBox
disant que "DP.UnsetValue" n'est pas valide pour la propriété PasswordChar. Cependant, le projet se compile et s'exécute correctement dans le Mélange ou dans VS2010. Le cidre de designer dans VS2010 ne semblent pas à l'esprit de l'erreur, car cela rend ma UserControl
pour la conception de la configuration.
Normalement, quand je reçois un de ces erreurs, il y a un InnerException avec un chemin d'accès au fichier ou de la ressource manquante. Ce n'est pas le cas ici et je ne suis pas sûr de la façon de comprendre comment le corriger quand cela vient à l'avenir.
J'ai échangé les balises de tourner la PasswordBox
en normal TextBox
et il semble être bien avec. Cependant j'ai besoin de la contribution de masquage qui PasswordBox
fournit. Il n'est pas très pratique pour commenter cet objet et la finition style à mon contrôle dans le Mélange.
Voici mon code Xaml:
<PasswordBox x:Name="PasswordTextbox" PasswordChar="*" Height="26" VerticalAlignment="Center" Grid.Column="1" Grid.Row="1" Margin="5" RenderTransformOrigin="0.5,0.5" TabIndex="3">
<PasswordBox.RenderTransform>
<TransformGroup>
<ScaleTransform/>
</TransformGroup>
</PasswordBox.RenderTransform>
<PasswordBox.Effect>
<DropShadowEffect />
</PasswordBox.Effect>
<PasswordBox.Triggers>
<EventTrigger RoutedEvent="UIElement.GotFocus">
<BeginStoryboard Storyboard="{StaticResource StoryboardScaleUpFontIncrease}"/>
</EventTrigger>
<EventTrigger RoutedEvent="UIElement.LostFocus">
<BeginStoryboard Storyboard="{DynamicResource StoryboardScaleNormalFontNormal}"/>
</EventTrigger>
</PasswordBox.Triggers>
</PasswordBox>
Personne ne sait comment déboguer ce comportement?
OriginalL'auteur TWood | 2010-09-24
Vous devez vous connecter pour publier un commentaire.
J'ai aussi eu le même problème dans le concepteur xaml mais dans un sightly manière différente. J'ai ajouter le détail ici dans le cas où il est utile à quelqu'un.
J'ai été en utilisant un 3ème contrôle du parti qui dispose de son propre thème défini dans une dll. J'ai parlé de cette dll et l'utiliser 'StaticResource' pour faire référence à certaines ressources définies dans le dll. Ensuite, le concepteur xaml souligné mon code xaml disant quelque chose comme "D. Unset n'est pas une valeur valide pour xxx". Mais le programme de compiler et d'exécuter sans aucun problème.
Pour éliminer ces ennuyeux souligner, la solution est simple: Changement "
StaticResource
' à 'DynamicResource
'.Un autre plus compliqué est d'utiliser "
ResourceDictionary.MergedDictionaries
" afin d'inclure les ressources dans le dll dans votre fichier xaml.Notez que les ressources statiques sont changé au moment de la compilation, et de la dynamique des ressources sont mises de l'exécution, donc il y a un léger impact sur les performances
Désolé de réouvrir ce post, mais votre commentaire
Another more complicated way is to use 'ResourceDictionary.MergedDictionaries'
est inexacte. C'est pas compliqué, c'est juste une seule ligne et vous avez juste à comprendre la syntaxe pour spécifier un fichier qui se trouve dans une DLL (aka ressources). Aussi,DynamicResource
spécifie un usage particulier qui est différent d'unStaticResource
. Vous devez comprendre la performance des coûts qui seront engagés avant généreusement à l'aide deDynamicResource
dans votre projet.OriginalL'auteur Anstinus
J'ai finalement été en mesure de résoudre ce problème en utilisant les techniques décrites sur cette entrée de blog:
http://web.archive.org/web/20090602111317/http://bea.stollnitz.com/blog/?p=52
le lien est cassé 🙁
OriginalL'auteur TWood
Voulais juste ajouter que cela a été utile dans la résolution d'un problème pour l'obtention d'un "DependencyProperty.UnsetValue n'est pas une valeur valide pour la propriété d'erreur" résolus, en particulier la première partie du blog, ce qui suggère que votre ressource pourrait ne pas être valide (c'est à dire précédemment définis et disponibles pour une utilisation). S'avère que dans mon cas, c'est la question classique de ne pas définir de mes ressources dans le droit de la portée et avant en réalité, ils sont appelés.
Mon avis: tout d'Abord assurez-vous que vous définissez la StaticResource dans le bon Élément.La section des ressources. Assurez-vous que la définition est physiquement situé à l'avant de votre appel à la ressource.
OriginalL'auteur ouflak
Je le conseil à revérifier (deux ou plus) de votre ResourceDictionary. Je suis venu à cette erreur après que j'ai ajouté à mon ResourceDictionary:
tout
{StaticResource myDefinedColor}
a été défini ci-DESSOUS. Dans mon cas, l'erreur était sur le premier plan qui a UnsetValue. Donc en fait c'était vraiment un unset valeur...J'ai déménagé mon style de l'Étiquette ci-dessous la définition de ma couleur et que c'était ça!
OriginalL'auteur Ursula