locked
redessiner une image chaque fois que le compas change RRS feed

  • Discussion générale

  • bjr à tous, je ne suis pas programmeur mais passionné, ce qui est evident pour vous peut m'echaper completement soyez indulgent, merçi

    dans mon code xaml j'ai l'image d'un compas qui se charge ça ressemble à ça : 

    <Image Source="/Assets/b03.jpg" RenderTransformOrigin=".5,.5" x:Name="arrow" Loaded="onload">
    <Image.RenderTransform>
    <RotateTransform CenterX="0.5" CenterY="0.5" />
    </Image.RenderTransform>
    </Image>

    dans mon code c# à un moment j'ai ça :

    private async void ReadingChanged(object sender, CompassReadingChangedEventArgs e)
    {
    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
    CompassReading reading = e.Reading;
    textBlock.Text = String.Format("{0,5:0.00}", reading.HeadingMagneticNorth); // jusque là tout va bien 
    dMagnetic = reading.HeadingMagneticNorth;// j'essaie de recuperer l'angle dans un double en esperant redessiner l'image à chaque fois avec un nouveau angle, bien sûr ça ne marche pas.

    arrow.RenderTransform = new RotateTransform() { Angle = dMagnetic };// et ici pas d'image qui s'affiche (mon raisonnement simpliste en fera sourire plus d'un et moi le premier je me rends compte que j'y suis pas du tout)
    });
    }

    est-ce qu'une bonne âme peut m'aider je souhaite que l'image tourne comme une vrai boussole.

    bonne journée à tous
    jeudi 20 octobre 2016 09:08

Toutes les réponses

  • Bonjour,
    Lorsque vous dites "ça ne marche pas" - obtenez-vous une erreur? Quelle est la valeur de dMagnetic?
    Consultez Universal Templatable Compass Control et Creating a Universal Templatable Compass Control.

    Cordialement,
    Nina

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    vendredi 21 octobre 2016 08:53
  • bjr, dans sa doc microsoft ns donne cet methode pou 1 lecture du compas

    private void DisplayCurrentReading(object sender, object args)
            {
                CompassReading reading = _compass.GetCurrentReading();
                if (reading != null)
                {
                    textBlock.Text = String.Format("{0,5:0.00}", reading.HeadingMagneticNorth);
                    if (reading.HeadingTrueNorth != null)
                    {
                        textBlock.Text = String.Format("{0,5:0.00}", reading.HeadingTrueNorth);
                    }
                    else
                    {
                        textBlock.Text = "No data";
                    }
                }
            }

    je ne sais pas comment l'utiliser pour recuperer le nord magnetic dans une variable double d_nord_magnetic j'aurais bien fait comme ça " d_nord_magnetic = getcurrentreading() alors si une bonne âme veut bien prendre la peine de me faire avançé un peu, a titre educatif j'essai de faire un compas et dans mon code c# j'ai besoin de cette variable pour ici :

     arrow.RenderTransform = new RotateTransform() { Angle = d_nord_magnetic }; pour faire tourner l'image

    j'ai 54 ans alors soyez indulgent avec moi merçi a tous

    mardi 25 octobre 2016 18:06