with trigger style wpf triggers properties ellipse

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.

Fuente: http://forums.silverlight.net/t/160615.aspx

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.