2

我在使用 Caliburn micro 的窗口管理器时发现的奇怪问题。

我有以下代码显示一个对话框窗口

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 中设置一些设置吗?我该如何解决这个问题?

4

1 回答 1

5

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

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

于 2012-11-20T19:23:34.223 回答