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

Lie*_*ell 6 wpf caliburn.micro

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

我想要主视图UserControl(基本上是一个包含其他用户控件及其自己的视图模型的网格)来拉伸和填充整个应用程序主窗口区域.所以我在主视图上将Horizo​​ntalAlignment和VerticalAlignment设置为Stretch.但这不符合我的要求.

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

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

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

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

小智 11

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

在你的引导程序的OnStartup功能,你只需要设置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);
}
Run Code Online (Sandbox Code Playgroud)


Rau*_*uld 0

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

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