J'ai mentionné qu'il n'y a pas de contrôle occupé standard dans WPF. Alors, quelle est la façon la plus simple d'afficher un cercle occupé animé (pas une barre de progression) tel que votre navigateur s'affiche lors du chargement d'une page?
S'il vous plaît, si vous suggérez de télécharger le contrôle à partir d'Internet, assurez-vous que ce contrôle est gratuit et sans restriction de licence (comme je serais obligé de GPL mon application si je l'utilise).
Merci d'avance
Il y a aussi Sacha Barber's Circular Progress Bar . Il est sous licence Open Code Project.
Vous pouvez également utiliser des gifs animés, comparer par exemple ce site: http://www.loadinfo.net/ . Différentes couleurs, formes, images par seconde, fond transparent sont générés pour vous.
Ensuite, vous ajoutez le WPF Animated GIF comme référence à votre projet.
Faites un usercontrol avec <Image gif:ImageBehavior.AnimatedSource="Images/animated.gif" />
Comme contenu et donnez à usercontrol une propriété de dépendance (DP) IsBusy
avec un rappel à une méthode dans usercontrol:
`public static readonly DependencyProperty IsBusyProperty = DependencyProperty.Register("IsBusy", typeof(bool), typeof(SpinProgress), new FrameworkPropertyMetadata(new PropertyChangedCallback(OnIsBusyChangedCallBack)));`
Dans cette méthode, les méthodes Play()
et 'Pause ()' du gif animé peuvent être exécutées.
Liez la propriété IsBusy
de usercontrol au modèle de vue.
Ou - lorsque cela est approprié - ignorez le DP et les méthodes Play()
et Pause()
et liez la propriété Visibility
au modèle de vue.
Vous pouvez implémenter la roue de traitement pendant que votre application est occupée. bien que WPF ne supporte aucune image GIF, vous devez donc utiliser une animation pour cela. ci-dessous est un bon lien pour la roue de rotation FrameAnimation.
http://www.codeproject.com/Articles/29545/FrameBasedAnimation-Animating-multiple-properties
J'en ai récemment téléchargé un sur codeplex. Il vous permet de le personnaliser (même en runtime). Vous pouvez le télécharger depuis ici . Un exemple de démonstration a également été téléchargé.
J'en ai récemment implémenté un qui ressemble à l'indicateur d'occupation de l'iPhone, a expliqué ici .