سؤال

كنت أتساءل عما إذا كانت هناك أداة لتحويل بيانات المسار مثل "M 0 0 L 10 10" إلى كود شريحة سطر / منحنى ما يعادلها.

حاليا أنا أستخدم:

string pathXaml = "<Path xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" Data=\"M 0 0 l 10 10\"/>";
Path path = (Path)System.Windows.Markup.XamlReader.Load(pathXaml);

يبدو لي أن الدعوة Xamlparser أبطأ بكثير من خلق شرائح الخط صراحة. مهما كان تحويل الكثير من المسارات باليد مملة للغاية.

هل كانت مفيدة؟

المحلول

هذا البرنامج سيفعل التحويل:http://stringtopathgeietry.codeplex.com/

نصائح أخرى

لا يوجد شيء مدمج لتوليد C # أو رمز VB من الهندسة Minilanguage، ولكن يمكنك إنشاء واحدة على النحو التالي:

  • Emit C # أو رمز VB ل New-Ing Up Pathgeometry.
  • يتصل PathFigureCollection.Parse على سلسلة المسار الخاص بك. هذا سيعود PathFigureCollection نموذج.
  • تكرار فوق pathfigurecollection. لكل شخصية:
    • اكتب رمز C # أو VB لكائن PathFigure الجديد وإضافةه إلى مجموعة PathGeometry.Figures.
    • تكرار حول مجموعة شرائح الشكل. لكل شريحة، قم بتحليل كود نوعه ونبعه تعتمد على النوع من النوع الجديد من النوع المناسب من المساور، مما يؤدي إلى إعداد خصائصه وإضافته إلى المسارات الحالية.

سواء كان ذلك مملا أكثر أو أقل من تحويل المسارات باليد، فهذا شيء فقط يمكنك أن تقرره فقط، على الرغم من ذلك ... ربما يعتمد على عدد أنواع القطاعات المختلفة التي تحتاجها للتعامل معها (أي كم عدد أنواع مختلفة من القطاع التي تظهر في طريقك سلاسل)، نظرا لأنك سيتعين عليك كتابة رمز منفصل ل Linesegments، ArcSegments، إلخ.

تحرير: بفضل أنفاكا في تعليقات لتبسيط الإجابة الأصلية من خلال رسم انتباهي إلى PathFigureCollection.Parse.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top