【问题标题】:Caliburn Micro dialog window's width/height is being arbitrarily setCaliburn Micro 对话窗口的宽度/高度被任意设置
【发布时间】:2012-11-20 15:10:10
【问题描述】:

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

【问题讨论】:

    标签: c# .net wpf caliburn.micro


    【解决方案1】:

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

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

    【讨论】:

    • 真的吗?这很奇怪,当我尝试在没有窗口管理器的窗口上使用常规显示方法时,我没有遇到同样的问题。无论如何,这解决了这个问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    相关资源
    最近更新 更多