Me gustaría cambiar el tamaño de un círculo en mi lienzo con la ayuda de un control deslizante. Este círculo se puede mover por el lienzo arrastrando algunas cosas & que hice en el código detrás, por lo que su posición no es fija.WPF: cambiar el tamaño de un círculo, manteniendo el punto central en lugar de TopLeft?
He atado el valor del control deslizante a la altura y el ancho de una elipse. Lamentablemente, cuando utilizo el control deslizante, el círculo cambia de tamaño con su punto superior izquierdo (en realidad, el punto superior izquierdo del rectángulo en el que se encuentra) permaneciendo igual durante la operación.
Me gustaría cambiar el tamaño con su centro punto constante durante la operación. ¿Hay alguna manera fácil de hacer esto en XAML? Por cierto, ya probé ScaleTransform, pero no hizo exactamente lo que quería.
¡Muchas gracias! :-)
Ene
<Canvas x:Name="MyCanvas">
<!-- this is needed for some adorner stuff I do in code behind -->
<AdornerDecorator Canvas.Left="10"
Canvas.Top="10">
<Ellipse x:Name="myEllipse"
Height="{Binding Path=Value, ElementName=mySlider}"
Width="{Binding Path=Value, ElementName=mySlider}"
Stroke="Aquamarine"
Fill="AliceBlue"
RenderTransformOrigin="0.5 0.5">
<Ellipse.RenderTransform>
<RotateTransform Angle="{Binding Path=Value, ElementName=myRotationSlider}" />
</Ellipse.RenderTransform>
</Ellipse>
</AdornerDecorator>
<Slider x:Name="mySlider"
Maximum="100"
Minimum="0"
Width="100"
Value="10"
Canvas.Left="150"
Canvas.Top="10" />
<Slider x:Name="myRotationSlider"
Maximum="360"
Minimum="0"
Width="100"
Value="0"
Canvas.Left="150"
Canvas.Top="50" />
</Canvas>
¡Gracias por su respuesta! Me mostró que mi pregunta era incompleta ;-) La posición del círculo en el lienzo no es fija, es por eso que no encontré la manera de usar un ValueConverter ... – Jan
Espera, esto funcionaría. Tendría que tener un convertidor de valor que haga 'value/2 * -1' – Will
¡Hola Martin! Gracias - Voy a probar esto el miércoles e informar :) – Jan