2010-01-29 2 views
0

J'expérimente actuellement avec ChildWindowDialog et avec le prisme j'ai créé une classe de contrôleur. Je voudrais que mon popup apparaisse sur tout l'écran (un peu comme le mode plein écran). J'ai HtmlPage.Window.Eval() ci-dessous mais je ne suis pas sûr si c'est la bonne chose à faire. L'une des raisons pour lesquelles je me sens mal est que je n'ai aucune idée de la façon de tester cette classe à l'avenir. De plus, j'ai couplé le contrôleur à la classe Browser, ce qui signifie que je ne pourrais pas le réutiliser dans une application WPF.Comment faire pour que la popup apparaisse en plein écran?

public class GalleryCoverFlowChildWindowController 
{ 
    private readonly IEventAggregator _eventAggregator; 
    private readonly IUnityContainer _container; 

    public GalleryCoverFlowChildWindowController(IEventAggregator eventAggregator, IUnityContainer container) 
    { 
     _eventAggregator = eventAggregator; 
     _container = container; 
     _eventAggregator.GetEvent<GalleryCoverViewPopupEvent>().Subscribe(PopupShow, ThreadOption.UIThread, true, Filter); 
    } 

    private bool Filter(string obj) 
    { 
     return true; 
    } 

    private void PopupShow(string obj) 
    { 
     var galleryPopup = _container.Resolve<GalleryCoverFlowChildWindow>(); 
     galleryPopup.Width = (double)System.Windows.Browser.HtmlPage.Window.Eval("screen.availWidth"); 
     galleryPopup.Height = (double)System.Windows.Browser.HtmlPage.Window.Eval("screen.availHeight"); 
     galleryPopup.Show(); 
    } 
} 

JD.

Répondre

0

Pour résoudre le problème avec le couplage, j'ai créé un ScreenService et l'ai injecté via Unity. De cette façon, je n'ai pas de dépendance sur DOM. Cela rendra le test du code plus facile.

Des pensées?