Rotacja w wpf.

0

Hej.

Czy może ktoś z was używał rotacji w c# wpf. chodzi mi oto aby obrazek kręcił się w punkcie środkowym a nie do lewo czy prawego wierzchołka.

                        <Grid.RenderTransform>
                            <TransformGroup>
                                <ScaleTransform/>
                                <SkewTransform/>
                                <RotateTransform Angle="{Binding Rotate}" CenterX="{Binding CenterX}" CenterY="{Binding CenterY}"/>
                                <TranslateTransform/>
                            </TransformGroup>
                        </Grid.RenderTransform>


 public const string RotatePropertyName = "Rotate";
        private double rotate;
        public double Rotate
        {
            get
            {

                return this.rotate;
            }

            set
            {
                if (this.rotate == value) return;

                this.rotate = value;
                RaisePropertyChanged(RotatePropertyName);
                OnRotate(value);
            }
        }

#region CenterX

        public const string CenterXPropertyName = "CenterX";
        private double centerX ;
        public double CenterX 
        {
            get
            {
                return Width/2;
            }

           
        }

        #endregion
        #region CenterY

        public const string CenterYPropertyName = "Centery";
        private double centery;
        public double CenterY
        {
            get
            {
                return Height / 2;
            }


        }

        #endregion
 
0
public void Rorate(double angle)
        {
            RotateTransform rorate = new RotateTransform(angle, 0, 0); /* punkt wgledem którego nastapi obrót (0,0)lewy górny róg tw elementu :)*/
            TwojElemnet.RenderTransform = rorate;
        }
1

Jak dasz:

<RotateTransform Angle="{Binding Rotate}" CenterX="0.5" CenterY="0.5"/>

lub zrobisz:

<Grid RenderTransformOrigin="0.5, 0.5">
   <Grid.RenderTransform>
      <RotateTransform Angle="{Binding Rotate}" />
   </Grid.RenderTransform>
</Grid>

To masz zamierzony efekt?

0

Dzięki.

 <Grid RenderTransformOrigin="0.5, 0.5">
   <Grid.RenderTransform>
      <RotateTransform Angle="{Binding Rotate}" />
   </Grid.RenderTransform>
</Grid>

To rozwiązanie pomogło.

1 użytkowników online, w tym zalogowanych: 0, gości: 1