2012-08-28 111 views
5

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

我希望主视图用户控件伸展并填写整个应用程序主窗口区域(基本上是包含其他用户控件与自己的视图模型的网格)。所以我在Stretch的主视图上设置了Horizo​​ntalAlignment和VerticalAlignment。但是,这不起作用,因为我想。

如果我在主视图上设置高度为&的宽度为某个值,那么这使我可以控制应用程序主窗口的大小,但视图将固定大小,并且不会在主窗口中调整大小。

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

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

希望能帮到你,我坚持!

回答

0

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

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

+0

但控制元素是如何裁剪。这不是我的主要问题。我如何设置应用程序的整体启动大小,同时允许主视图中的网格在启动后使用应用程序调整大小? – Liell

+0

http://stackoverflow.com/questions/36108/how-to-get-controls-in-wpf-to-fill-available-space – Rauld

9

我意识到这个问题是很旧,大概是指Caliburn.Micro V1,但以防万一别人像我走来,这里是Caliburn.Micro V2的解决方案。

在你的引导程序的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

谢谢 - 设置SizeToContent似乎做的伎俩! – Govert