Caliburn Micro对话窗口的宽度/高度是任意设置的

时间:2012-11-20 15:10:10

标签: c# .net wpf caliburn.micro

我在使用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的设计视图中显示的内容)

enter image description here

但相反,这就是我得到的:

enter image description here

是什么给出的?为什么要任意设置对话窗口的高度/宽度?我必须在windowManager中触摸一些设置吗?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

您可以将SizeToContent="WidthAndHeight添加到Window的根SendLogicDialogView元素中,或将其作为其他设置传递。

此行为并非特定于Caliburn.Micro,在Width和{{1}上未指定HeightWindow时,它是标准的WPF行为}设置为SizeToContent(默认值),窗口将具有默认的宽度和高度。