我需要在第一次打开时设置视图的默认大小,但视图必须允许用户扩展它.(由于其他原因,我无法在WindowManager中使用SizeToContent属性.)
这一定是常见的,建议的默认窗口大小是什么?
这实际上已经让我误解了一段时间.一旦我弄清楚了,我很恼火,我没有早点弄明白.
在caliburn中显示窗口时,可以在调用时设置有关Window对象的属性.
所以,假设您要将窗口的高度和宽度设置为600 x 300:
首先,你会从这样的事情开始:
public class ShellViewModel : PropertyChangedBase, IShell { private readonly IWindowManager windowManager; public ShellViewModel() { this.windowManager = new WindowManager(); this.windowManager.ShowWindow(new LameViewModel()); } }
ShowWindow方法还有另外两个字段.第三个参数允许您动态设置Window对象的属性.
public class ShellViewModel : PropertyChangedBase, IShell { private readonly IWindowManager windowManager; public ShellViewModel() { this.windowManager = new WindowManager(); dynamic settings = new ExpandoObject(); settings.Height = 600; settings.Width = 300; settings.SizeToContent = SizeToContent.Manual; this.windowManager.ShowWindow(new LameViewModel(), null, settings); } }
我希望有更多关于在文档上使用它的信息,但是你有它.
不确定这个帖子是否适用于此帖子,但对于现在关注的任何人来说,这就是如何在应用程序引导程序中轻松设置CaliburnMicro中的窗口大小.我的代码设计为在启动时保留与之前关闭时相同的窗口尺寸.我将屏幕高度/宽度保存为关闭时的设置属性,然后在启动时将其恢复回来(检查以确保不大于当前屏幕大小).
AppBootstrapper.cs
protected override void OnStartup(object sender, System.Windows.StartupEventArgs e) { double width = Settings.Default.screen_width; //Previous window width double height = Settings.Default.screen_height; //Previous window height double screen_width = System.Windows.SystemParameters.PrimaryScreenWidth; double screen_height = System.Windows.SystemParameters.PrimaryScreenHeight; if (width > screen_width) width = (screen_width - 10); if (height > screen_height) height = (screen_height-10); Dictionarywindow_settings = new Dictionary (); window_settings.Add("Width", width); window_settings.Add("Height", height); DisplayRootViewFor (window_settings); }