2016-10-10 4 views
1

J'ai une grande application WPF. Je cherche à rendre l'interface utilisateur multithread. Dans le cadre de ce processus, je déplace des ressources de style et de contrôle au niveau de l'application au niveau de la fenêtre. (Je sais par expérience que je ne peux pas utiliser DynamicResource et résoudre au niveau de l'application, sauf si je suis sur le thread de l'application.) Quoi qu'il en soit, j'ai déplacé un tas de ressources de contrôle. L'application fonctionne avec un seul problème: toutes mes animations sur FrameworkElement Height et Width sont cassées. Ils échouent tous parce que le contrôle est de largeur ou de hauteur NaN. Ces animations fonctionnent toutes lorsque les modèles de contrôle sont enregistrés au niveau de l'application. Tous mes contrôles où j'anime la hauteur ou la largeur ont des valeurs de hauteur ou de largeur par défaut qui ne sont pas NaN. Pourquoi l'emplacement de la ressource affecterait-il cela?DoubleAnimation se plaint de l'origine == NaN seulement quand la ressource est dans la fenêtre

+0

Malheureusement, "grande application WPF" n'est pas assez d'informations pour que je puisse reproduire votre problème. J'ai une très grande application WPF dans VS directement sur mon bureau, et elle n'affiche pas le même comportement que la vôtre. Peut-être que puisque c'est un problème spécifique avec XAML spécifique dans un contexte spécifique, vous pourriez partager plus de détails. –

+0

J'aimerais écrire du code avec cette question, mais je n'arrive pas à reproduire le problème dans n'importe quelle situation académique. – Brannon

+0

Dans mes tentatives d'isoler cela, j'ai posté une question connexe ici: http://stackoverflow.com/questions/39987144/window-level-staticresource-fails-two-levels-deep – Brannon

Répondre

0

Utilisez ActualWidth et ActualHeight. Nan signifie que ces propriétés ne sont pas encore définies. https://stackoverflow.com/a/607849/3955716

+0

Vous ne pouvez pas animer ces propriétés car elles sont en lecture seule. – Brannon

+0

Pleae montre votre xaml – Rom