2012-08-28 15 views
5

No puedo encontrar la manera de controlar el tamaño de mi aplicación y, a la vez, permitir que el contenido cambie de tamaño con la ventana principal. Es una aplicación WPF y estoy usando Caliburn Micro (ViewModel primero) y todas mis vistas son UserControls.Tamaño de configuración de la aplicación wpf/caliburn.micro mientras permite que el contenido cambie de tamaño con la ventana principal.

Quiero la vista principal UserControl (básicamente una cuadrícula que contiene otros controles de usuario con sus propios modelos de vista) para estirar y completar toda el área de la ventana principal de la aplicación. Así que he establecido HorizontalAlignment y VerticalAlignment en la vista principal para Stretch. Pero esto no funciona como yo quiero.

Si establezco la Altura & Ancho en la vista principal a algún valor, entonces esto me permite controlar el tamaño de la ventana principal de la aplicación, pero la vista será de tamaño fijo y no cambiará de tamaño con la ventana principal.

Si configuro Ancho & Ancho en la vista principal a Automático, entonces el tamaño de la ventana de la aplicación se ajustará al tamaño de la vista principal, y no al revés.

Lo que quiero es que el contenido de la ventana de la aplicación (la ventana se crea automáticamente por Caliburn.Micro para la vista principal) se extiende para completar la ventana de la aplicación, cuyo tamaño he establecido de alguna manera no puedo averiguar cómo hacerlo.

Espero que puedan ayudar, ¡estoy atascado!

Respuesta

0

Elimine la altura y el ancho que ha configurado para los controles secundarios & use la propiedad UIElement.CliptoBounds y establézcala en True.

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

+0

Pero que controla cómo se recortan elementos. Ese no es mi principal problema aquí. ¿Cómo configuro el tamaño de inicio general de la aplicación y, a la vez, la red en la vista principal para cambiar el tamaño de la aplicación después del inicio? – Liell

+0

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

9

que dan cuenta de esta pregunta es muy antiguo y probablemente se refiere a Caliburn.Micro v1, pero por si acaso alguien como yo viene, aquí está la solución para Caliburn.Micro v2.

En función de su programa previo OnStartup, sólo tiene que establecer Width, Height y SizeToContent.Manual ajustes en la función DisplayRootViewFor como se hace a continuación:

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

Gracias - configuración SizeToContent parecía hacer el truco! – Govert

Cuestiones relacionadas