La guía paso a paso o código que encontrarás en este artículo es la solución más fácil y efectiva que hallamos a tu duda o dilema.
Solución:
WidthRequest simplemente describe el ancho deseado de un elemento durante el próximo ciclo de diseño.
Para que funcione como cabría esperar, se deben cumplir 2 condiciones:
1) el ancho solicitado es consistente con todas las restricciones (por ejemplo, el ancho de los padres) y
2) se activa un ciclo de diseño.
Ancho de solicitud: https://developer.xamarin.com/api/property/Xamarin.Forms.VisualElement.WidthRequest/
Pero eso es complicado. Recomiendo simplemente reemplazar el diseño de la pila con una cuadrícula y colocar cada elemento en una columna del ancho deseado.
Ejemplo de cuadrícula: https://developer.xamarin.com/api/type/Xamarin.Forms.Grid/
Debe especificar una HorizontalOptions como “inicio” o “centro”. Las opciones horizontales predeterminadas para stackLayout son FillAndExpand, por lo que los elementos secundarios como una vista de lista llenarán toda el área horizontal disponible aunque especifique un ancho. Esta fue una mala decisión en nombre de Microsoft porque el comportamiento predeterminado ignorará/anulará una solicitud de ancho.
Aquí hay un ejemplo visual: tengo un selector donde configuro la solicitud de ancho en 200, que debería ocupar aproximadamente 2/3 del espacio horizontal.
Como puede ver, la solicitud de ancho se anula/ignora. Entonces, si después de configurar HorizontalOptions en “Inicio”…
Se respeta la solicitud de ancho. Por supuesto, estoy configurando las propiedades en el archivo .xaml aquí, que generalmente prefiero, pero también puede configurar las Opciones horizontales en C # de esta manera
pickerRanks.HorizontalOptions = LayoutOptions.Start;
Si te mola el tema, puedes dejar un enunciado acerca de qué te ha parecido esta noticia.