【问题标题】:Silverlight ChildWindow set size according to content but then fix sizeSilverlight ChildWindow 根据内容设置大小,然后固定大小
【发布时间】:2014-02-10 18:21:33
【问题描述】:

我想在 Silverlight 中打开一个 ChildWindow。内容是托管在 ChildWindow 内的 ContentControl 中的各种视图。

子窗口打开,它的大小取决于它的内容。这是期望的行为。问题是,当内容调整大小(例如选项卡控件、网格 - 添加/删除列)时,子窗口也会调整大小。

有没有办法禁用子窗口自动调整大小?试图设置 MaxWidth/MaxHeight 和 MinWidth/MinHeight。问题是我不知道如何计算内容的大小。

提前谢谢你:)

【问题讨论】:

    标签: silverlight mvvm silverlight-5.0 caliburn.micro


    【解决方案1】:

    将子窗口的内容包装在一个额外的网格控件中。使用网格的 Loaded 事件来获取窗口内容的计算大小并相应地限制窗口大小:

    void ExtraGrid_Loaded(object sender, RoutedEventArgs e)
    {
        childWindow.Width = extraGrid.ActualWidth;
        childWindow.Height = extraGrid.ActualHeight;
    }
    

    【讨论】:

    • 这似乎是解决方案,但在 childwindows contentcontrol 是另一个 contentcontrol 时无法正常工作(例如,具有两个视图的选项卡控件。)
    • 我不确定您的确切控件层次结构,这对我有用:ChildWindow > Grid (extraGrid) > TabControl > TabItems
    • 我使用 MVVM 和 Caliburn.Micro。 DialogView -> childwindow -> extragrid -> contentcontrol (1) -- TestView -> tabcontrol -> tabitem -> contentcontrol (2) TestView 在 contentcontrol 1 中,在 contentcontrol 2 中的一些其他视图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 2016-11-03
    • 1970-01-01
    • 2019-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多