Créer un NetLogic pour animer l’image

Conditions préalables
Définissez l’éditeur de code externe par défaut. Consultez la rubrique Définir l'éditeur de code par défaut.
  1. Pour créer le NetLogic pour animer l’image
  2. Dans
    Vue de projet
    , cliquez avec le bouton droit de la souris sur
    MainWindow (type)
    et sélectionnez
    Nouveau
    NetLogic d’exécution
    .
  3. Double-cliquez sur NetLogic.
    L'éditeur de code externe s'ouvre.
  4. Modifiez le NetLogic en le remplaçant par le code suivant. Consultez la rubrique Modifier un NetLogic.
    #region Using directives using FTOptix.NetLogic; using FTOptix.UI; using System.Xml.Linq; using System.Linq; using UAManagedCore; using System.Threading; #endregion public class RuntimeNetLogic1 : BaseNetLogic { public override void Start() { // LogicObject.Owner is the button, so LogicObject.Owner is the MainWindow svgImage = LogicObject.Owner.Get<AdvancedSVGImage>("AdvancedSVGImage1"); // Retrieve the Path to the SVG var imageAbsolutePath = svgImage.Path.Uri; // Load the SVG into an XDocument xDocument = XDocument.Load(imageAbsolutePath); // Find the first path element var pathNode = xDocument.Descendants().Where(x => x.Name.LocalName == "path").FirstOrDefault(); // Find the first polygon element var polyNode = xDocument.Descendants().Where(x => x.Name.LocalName == "polygon").FirstOrDefault(); // Get the polygon transform attribute polyTransformAttribute = polyNode.Attribute("transform"); // Get the polygon transform attribute pathTransformAttribute = pathNode.Attribute("transform"); } public override void Stop() { keepGoing = false; if (myLRT != null) myLRT.Dispose(); } private void doRotate() { int degrees = 3; while (keepGoing) { Thread.Sleep(50); degrees += 3; if (degrees > 360) degrees = 0; string newTransformPoly = new string("rotate(" + degrees + ", 50, 250)"); polyTransformAttribute.SetValue(newTransformPoly); string newTransformPath = new string("rotate(" + degrees + ", 96, 97)"); pathTransformAttribute.SetValue(newTransformPath); //Update the SVG svgImage.SetImageContent(xDocument.ToString()); } } [ExportMethod] public void rotateSVG() { keepGoing = false; if (myLRT != null) myLRT.Dispose(); keepGoing = true; myLRT = new LongRunningTask(doRotate, LogicObject); myLRT.Start(); } private XDocument xDocument; private AdvancedSVGImage svgImage; private XAttribute polyTransformAttribute; private XAttribute pathTransformAttribute; private LongRunningTask myLRT; private bool keepGoing = true; }
  5. Enregistrez le code.
Fournir une réponse
Vous avez des questions ou des commentaires sur cette documentation ? Veuillez envoyer vos commentaires ici.
Normal