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

l46*_*kok 2 .net c# wpf caliburn.micro

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

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

sendLogicDialogViewModel.Initialize(CompiledCodeList);
dynamic settings = new System.Dynamic.ExpandoObject();
settings.WindowStartupLocation = WindowStartupLocation.CenterScreen;

windowManager.ShowDialog(sendLogicDialogViewModel, null, settings);
Run Code Online (Sandbox Code Playgroud)

哪个工作得很好..但由于某种原因,它在 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>
Run Code Online (Sandbox Code Playgroud)

这是我希望在对话框窗口中看到的内容(这是它在 Visual Studio 的设计视图中显示的内容)

在此处输入图片说明

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

在此处输入图片说明

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

dev*_*tal 5

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

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