6

我不知道如何在允许内容随主窗口调整大小的同时控制应用程序的大小。这是一个 WPF 应用程序,我使用的是 Caliburn Micro(首先是 ViewModel),我所有的视图都是 UserControls。

我希望主视图 UserControl(基本上是一个包含具有自己的视图模型的其他用户控件的网格)来拉伸并填充整个应用程序主窗口区域。所以我在主视图上将 Horizo​​ntalAlignment 和 VerticalAlignment 设置为 Stretch。但这不能按我的意愿工作。

如果我将主视图上的高度和宽度设置为某个值,那么这允许我控制应用程序主窗口的大小,但视图将是固定大小并且不会随主窗口调整大小。

如果我将主视图上的高度和宽度设置为自动,则应用程序窗口大小将调整为主视图的大小,而不是相反。

我想要的是应用程序窗口的内容(该窗口是由 Caliburn.Micro 自动创建的主视图)伸展以填充应用程序窗口,我以某种方式设置的大小我无法弄清楚如何做。

希望你能帮忙,我卡住了!

4

2 回答 2

11

我意识到这个问题已经很老了,可能是指 Caliburn.Micro v1,但以防万一像我这样的其他人出现,这里是 Caliburn.Micro v2 的解决方案。

在您的 BootstrapperOnStartup函数中,您只需要设置Width,HeightSizeToContent.Manual设置到DisplayRootViewFor函数中,如下所示:

protected override void OnStartup(object sender, StartupEventArgs e)
{
   var settings = new Dictionary<string, object>
   {
       { "SizeToContent", SizeToContent.Manual },
       { "Height" , 600  },
       { "Width"  , 1024 },
   };

   DisplayRootViewFor<IShell>(settings);
}
于 2015-04-02T15:23:53.893 回答
0

删除您为子控件设置的高度和宽度并使用 UIElement.CliptoBounds 属性并将其设置为 True。

http://msdn.microsoft.com/en-us/library/system.windows.uielement.cliptobounds.aspx

于 2012-08-28T12:57:47.873 回答