我在使用Caliburn micro的窗口管理器时发现的Bizzare问题。
我有以下代码,显示一个对话框窗口
sendLogicDialogViewModel.Initialize(CompiledCodeList);
dynamic settings = new System.Dynamic.ExpandoObject();
settings.WindowStartupLocation = WindowStartupLocation.CenterScreen;
windowManager.ShowDialog(sendLogicDialogViewModel, null, settings);
哪个效果很好..但由于某种原因,它正在调整XAML中视图的窗口高度声明。我已经提出了一个非常简单的观点来证明我的观点:
<Window x:Class="DDCLogicInstaller.SendLogicDialogView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="{Binding Title}"
xmlns:cal="http://www.caliburnproject.org"
cal:Bind.Model="DDCLogicInstaller.SendLogicDialogViewModel"
>
<Button Content="300" Height="100" Width="100"/>
</Window>
这是我期望在对话框窗口中看到的(这是它在Visual Studio的设计视图中显示的内容)
但相反,这就是我得到的:
是什么给出的?为什么要任意设置对话窗口的高度/宽度?我必须在windowManager中触摸一些设置吗?我该如何解决这个问题?
答案 0 :(得分:4)
您可以将SizeToContent="WidthAndHeight
添加到Window
的根SendLogicDialogView
元素中,或将其作为其他设置传递。
此行为并非特定于Caliburn.Micro,在Width
和{{1}上未指定Height
和Window
时,它是标准的WPF行为}设置为SizeToContent
(默认值),窗口将具有默认的宽度和高度。