none
uwp fixer point de rotation d'un rectangle RRS feed

  • Question

  • bonjour

     après bien des recherches et différentes aides obtenues ici j'ai réussi a écrire un code qui me fait une rotation sur un rectangle mais je voudrais que ce soit l’origine qui est fixe et non le haut du rectangle je vous joint un petit croquis afin d'expliciter ma demande ainsi que  mon code c#

            private void Btn_deplacement_droit_Tapped(object sender, TappedRoutedEventArgs e)
            {
                nbangle += 3;
                RotateTransform transform = new RotateTransform()
                { 
                    
                    Angle = nbangle,
                };
    
    
                fut_du_canon.RenderTransformOrigin = new Point(0,0);
                fut_du_canon.RenderTransform = transform;
            }
    

    vendredi 27 septembre 2019 10:33

Toutes les réponses

  • Il suffit de changer RenderTransformOrigin

    Par exemple, angle de 90°, avec Origine = 0.5, 1 :

    System.Windows.Controls.Grid grid1;
    System.Windows.Shapes.Rectangle rectangle1, rectangle2;
    
    grid1 = new System.Windows.Controls.Grid();
    
    rectangle1 = new System.Windows.Shapes.Rectangle()
    {
        Width = 20,
        Height = 100,
        Fill = System.Windows.Media.Brushes.Red                    
    };
    grid1.Children.Add(rectangle1);
    
    rectangle2 = new System.Windows.Shapes.Rectangle()
    {
        Width = 20,
        Height = 100,
        Fill = System.Windows.Media.Brushes.Blue,                    
        RenderTransformOrigin = new System.Windows.Point(0.5, 1),
        RenderTransform = new RotateTransform(90)
    };
    grid1.Children.Add(rectangle2);



    • Modifié Castorix31 samedi 28 septembre 2019 09:56
    samedi 28 septembre 2019 09:55