wpf - trigger - En XAML, ¿cómo puedo mantener una elipse como un círculo?
trigger with condition wpf (3)
Me tropecé con esta pregunta hace unos minutos y encontré una solución mucho mejor que @Paul Betts (comentaría su respuesta si pudiera, pero no puedo)
Simplemente puede usar <Ellipse Stretch="Uniform" />
para obtener un círculo.
Me estoy haciendo XAML-ciego, tengo miedo. Estoy desarrollando una aplicación MS Surface y tengo una elipse dentro de ScatterViewItem (un contenedor que un usuario final puede cambiar de tamaño). Me gustaría mantener la elipse en un círculo (ancho == altura) y mantenerlo lo más grande posible (el valor más bajo de ancho / alto de la SVI debe tomarse para las propiedades de ancho / alto de la elipse).
Se prefiere una solución XAML única (que utiliza activadores de propiedades o similares).
Tu ayuda es muy apreciada como siempre.
¿Un simple Viewbox
haría el truco? P.ej
<Viewbox xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Canvas Width="100" Height="100">
<Ellipse Fill="Red" Width="100" Height="100" />
</Canvas>
</Viewbox>
El Viewbox
escalará su contenido para llenar el área del Viewbox
, y por defecto hace la escala proporcionalmente. Las alineaciones horizontales y verticales especificadas mantienen la Ellipse
centrada cuando no se puede estirar al tamaño completo (debido a la escala proporcional).
<Ellipse x:Name="anEllipse" Width={Binding Path=ActualHeight ElementName=anEllipse} />
Probablemente podría salirse con la suya de no nombrar esto si también hizo un enlace relativo.