Micro:使用WPF使用IWindowManager创建一个无边界窗口

Micro:使用WPF使用IWindowManager创建一个无边界窗口,wpf,caliburn.micro,Wpf,Caliburn.micro,使用of,是否可以使用ShowWindow方法创建无边框窗口 在这种情况下,窗口的内容是从UserControl生成的。和Caliburn.Micro将创建一个窗口来承载用户控件。编辑:当前状态: 在当前的Caliburn.Micro v1.2(2011年7月20日)版本中,无法在创建的窗口上设置属性。您可以从WindowManager继承并重写CreateWindow方法: public class BorderlessWindowManager : WindowManager { p

使用of,是否可以使用
ShowWindow
方法创建无边框窗口


在这种情况下,窗口的内容是从UserControl生成的。和Caliburn.Micro将创建一个窗口来承载用户控件。

编辑:当前状态:

在当前的Caliburn.Micro v1.2(2011年7月20日)版本中,无法在创建的窗口上设置属性。您可以从
WindowManager
继承并重写
CreateWindow
方法:

public class BorderlessWindowManager : WindowManager
{
    protected override Window CreateWindow(object rootModel, bool isDialog, 
       object context)
    {
        var window = base.CreateWindow(rootModel, isDialog, context);
        window.WindowStyle = WindowStyle.None;
        window.ShowInTaskbar = false;
        window.AllowsTransparency = true;
        window.Background = new SolidColorBrush(Colors.Transparent);
        return window;
    }
}
新版本发布时:

是的,可以使用
设置
参数:

public interface IWindowManager
{
    //...
    void ShowWindow(object rootModel, object context = null, 
         IDictionary<string, object> settings = null);
}

我们使用的是最新版本v1.2(2011年7月20日)。“设置”参数似乎处于较新的未发布版本中。我们可以下载源代码并使用最新版本,但我们只希望使用正式发布的版本。哦。。抱歉,我直接在CodePlex的源代码中查看了它。我不知道它还没有发布。我将更新我的答案。我将研究Caliburn Micro的最新WindowManger类,看看是否还有其他新的依赖项。如果没有,我们可能会抓住源代码并实现它,直到新版本。但是,我们将先看看您是否能为v1.2版本提供一个选项。您能描述一下“windowmanager.ShowWindow”方法在解决方案树中的位置吗?@berioz the
IWindowManager
是Caliburn的一部分。下面是有关它的用法的一个示例。您还可以在中找到一些示例项目
windowManger.ShowWindow(viewModel, 
    settings: new Dictionary<string, object>
    {
        { "WindowStyle", WindowStyle.None},
        { "ShowInTaskbar", false},
        { "AllowsTransparency", true},
        { "Background", new SolidColorBrush(Colors.Transparent)},
    });