Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Caliburn Micro WindowManager设置WindowsStyle.None并允许拖动_C#_Wpf_Mvvm_Caliburn.micro - Fatal编程技术网

C# Caliburn Micro WindowManager设置WindowsStyle.None并允许拖动

C# Caliburn Micro WindowManager设置WindowsStyle.None并允许拖动,c#,wpf,mvvm,caliburn.micro,C#,Wpf,Mvvm,Caliburn.micro,我现在非常坚持这一点,我的设计师希望我们的应用程序具有WindowsStyle。无要删除边框和默认丑陋控件,他必须添加自定义控件,通常允许拖动。过去我们使用矩形并监视mousedown事件以允许拖动 然而,对于Caliburn micro,我们失去了对窗口的控制,因为windowmanager为我们创建了这个窗口,我知道您可以重写create window方法,但这仍然无法向窗口本身添加UI元素并绑定到这些事件。或者至少我能想出一个方法来做到这一点 基本上,我们正在尝试实现的是带有Windows

我现在非常坚持这一点,我的设计师希望我们的应用程序具有WindowsStyle。无要删除边框和默认丑陋控件,他必须添加自定义控件,通常允许拖动。过去我们使用矩形并监视mousedown事件以允许拖动

然而,对于Caliburn micro,我们失去了对窗口的控制,因为windowmanager为我们创建了这个窗口,我知道您可以重写create window方法,但这仍然无法向窗口本身添加UI元素并绑定到这些事件。或者至少我能想出一个方法来做到这一点


基本上,我们正在尝试实现的是带有WindowsStyle的“主窗口”。没有,并且能够拖动和移动窗口。我的谷歌搜索没有给出一个可靠的答案,我希望这里的人能有一个想法。

Caliburn.Micro
WindowManager
提供了对其
Show
方法的覆盖,允许您设置所创建窗口的设置

请看一个例子

或者,您可以直接使用
窗口
作为视图类型(在XAML和生成的代码隐藏文件中),并在XAML中声明性地设置属性


如果希望使所有对话框等具有通用UI组件,则可以创建派生的
WindowManager
类型,将调用委托给CM
WindowManager
,但将传入的视图模型与通用视图模型包装在一起。然后在引导程序中注册此自定义窗口管理器,而不是默认的CM窗口管理器。

Caliburn.Micro不会强制您将所有视图设置为用户控件。主视图或显示为主窗口的视图可以是窗口控件,您可以直接在该窗口上设置属性,如“WindowStyle.None”。当Caliburn.Micro看到主视图模型后面的视图(您使用的是作为根的视图模型,然后是您首先创建的视图模型)实际上是一个窗口,而不是用户控件时,它将遵守这一点并显示该窗口,不会创建新窗口。因此,您可以直接在该窗口上设置属性,一切都会正常工作。

我真的不知道,我所看到的一切都表明,它总是可以打开窗口,这将是完美的!