如何让弹出窗口全屏显示?

时间:2010-01-29 14:15:04

标签: silverlight prism

我目前正在试验ChildWindowDialog,并且我已经创建了一个控制器类。我希望我的弹出窗口显示在所有屏幕上(有点像全屏模式)。我在下面有HtmlPage.Window.Eval(),但我不确定这是否正确。感觉不对的原因之一是我不知道将来如何测试这门课程。此外,我已将控制器耦合到Browser类,这意味着我无法在WPF应用程序中重用它。

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。

1 个答案:

答案 0 :(得分:0)

为了解决耦合问题,我创建了一个ScreenService并通过Unity注入它。这样我就不依赖于DOM了。这将使代码的测试更容易。

有什么想法吗?