2008-11-10 10 views
3

Je cherche à utiliser CompositeWPF (http://www.codeplex.com/CompositeWPF) - aka Prism, pour construire une application sur laquelle je travaille.Est-ce que CompositeWPF supporte plusieurs fenêtres/shells?

L'application n'est pas une application métier traditionnelle, mais elle présente des données et des informations d'état à l'utilisateur. Une chose dont je ne sais pas si CompositeWPF prend en charge plus d'une fenêtre ou un shell. Je voudrais que mon application avertisse les utilisateurs avec une fenêtre sans bordure qui apparaît dans le bas RHS de l'écran (pensez à la notification MSN) mais toujours utiliser l'idée de vues injectées dans la région, etc

En plus de Je voudrais pouvoir réagir à une action de l'utilisateur (par exemple, double-cliquer sur quelque chose), masquer la fenêtre principale et présenter une boîte de dialogue de progression pendant que le travail est en cours.

Alors, est-ce possible?

Répondre

3

J'utilise Composite wpf depuis quelques mois et je ne vois pas pourquoi vous devriez être incapable de faire les choses que vous demandez.

Je n'irais probablement pas sur la route shell multiple, il y a un 'Composite wpf contrib project' qui définit un 'WindowRegionAdaptor' qui est censé faciliter l'affichage des vues dans des fenêtres séparées (Voir ici: http://www.codeplex.com/CompositeWPFContrib) pas utilisé, mais ont utilisé certains des autres articles contrib et ils fonctionnent comme annoncé. Bien que la documentation soit actuellement insuffisante sur certains d'entre eux, les forums peuvent être utiles.

je dois l'essayer, mais vous pouvez utiliser l'agrégateur d'événement pour publier un événement sur votre double action cliquez sur

eventAggregator.GetEvent<MainWindowShowEvent>().Publish(false); 

que le ShellPresenter pourrait souscrire et appeler à la vue de la coquille pour cacher sur réception:

eventAggregator.GetEvent<MainWindowShowEvent>().Subscribe(b => View.Show(b)); 

puis utilisez la WindowRegionAdaptor pour afficher votre boîte de dialogue de progression, puis à la fin publier un deuxième événement que la fenêtre principale est abonnée à laquelle elle provoque à nouveau montrer .. (ci-dessus je la charge utile au lieu d'indiquer si la shell doit afficher ou masquer)

espoir une partie de cette aide - tous non testé

Trev

+0

Merci pour votre réponse - je me demandais presque si quelqu'un pourrait m'aider. Le lien que vous avez fourni est superbe - je vais y jeter un coup d'œil (quand je peux trouver le temps) et rendre compte du résultat: D –

Questions connexes