设置wpf / caliburn.micro应用程序的大小,同时允许内容使用主窗口调整大小。

时间:2012-08-28 12:21:00

标签: wpf caliburn.micro

我无法弄清楚如何在允许内容使用主窗口调整大小的同时控制应用程序的大小。它是一个WPF应用程序,我使用Caliburn Micro(ViewModel优先),我的所有视图都是UserControls。

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

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

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

我想要的是应用程序窗口的内容(该窗口是由Caliburn.Micro为主视图自动创建的)拉伸以填写应用程序窗口,我已经以某种方式设置的大小我无法想象怎么做。

希望你能帮忙,我被困住了!

2 个答案:

答案 0 :(得分:10)

我意识到这个问题非常陈旧,可能是指Caliburn.Micro v1,但是为了防止像我这样的其他人出现,这里是Caliburn.Micro v2的解决方案。

在Bootstrapper的OnStartup功能中,您只需将WidthHeightSizeToContent.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);
}

答案 1 :(得分:0)

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

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