WPF'de yol dizelerini yol nesnelerine program aracılığıyla nasıl dönüştürdüğünüzü izlemek çok zor değil, ancak bir geometriyi veya yolu mini dilde bir dizeye dönüştürmek için yerleşik bir işlev var mı?Geometri/Yol, Minilanguage Dize Dönüştür?
5
A
cevap
6
Düzeltme: Şimdi baktığımda bunun yapılabilmesi gereken GeometryConverter
adında bir sınıf olması gerektiğini düşündüm ve gerçekten de var. Sadece bunlardan birini oluşturun ve dönüştürmek istediğiniz geometri üzerinde ConvertToString
kullanın.
Sen XAML olarak çıktı nesnelere XamlWriter
sınıfını kullanabilirsiniz, geometri otomatik mini dile azalacaktır.
örn. Bu giriş ise:
<DrawingImage xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<DrawingImage.Drawing>
<DrawingGroup>
<DrawingGroup.Children>
<GeometryDrawing Brush="#FFFF0000">
<GeometryDrawing.Pen>
<Pen Brush="#FF000000" />
</GeometryDrawing.Pen>
<GeometryDrawing.Geometry>
<PathGeometry Figures="M100,100L100,0A100,100,0,0,1,186.6,150L100,100" />
</GeometryDrawing.Geometry>
</GeometryDrawing>
<GeometryDrawing Brush="#FF0000FF">
<GeometryDrawing.Pen>
<Pen Brush="#FF000000" />
</GeometryDrawing.Pen>
<GeometryDrawing.Geometry>
<PathGeometry Figures="M100,100L186.6,150A100,100,0,0,1,13.4,150L100,100" />
</GeometryDrawing.Geometry>
</GeometryDrawing>
<GeometryDrawing Brush="#FF008000">
<GeometryDrawing.Pen>
<Pen Brush="#FF000000" />
</GeometryDrawing.Pen>
<GeometryDrawing.Geometry>
<PathGeometry Figures="M100,100L13.4,150A100,100,0,0,1,100,0L100,100" />
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingGroup.Children>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
tamamı PathGeometry
artık şudur:
<DrawingImage x:Name="segmentsDrawing">
<DrawingImage.Drawing>
<DrawingGroup>
<GeometryDrawing Brush="Red">
<GeometryDrawing.Pen>
<Pen Brush="Black" />
</GeometryDrawing.Pen>
<GeometryDrawing.Geometry>
<PathGeometry>
<PathFigure StartPoint="100,100">
<PathFigure.Segments>
<LineSegment Point="100,0"/>
<ArcSegment Point="186.6,150" SweepDirection="Clockwise" Size="100,100"/>
<LineSegment Point="100,100"/>
</PathFigure.Segments>
</PathFigure>
</PathGeometry>
</GeometryDrawing.Geometry>
</GeometryDrawing>
<GeometryDrawing Brush="Blue">
<GeometryDrawing.Pen>
<Pen Brush="Black"/>
</GeometryDrawing.Pen>
<GeometryDrawing.Geometry>
<PathGeometry>
<PathFigure StartPoint="100,100">
<PathFigure.Segments>
<LineSegment Point="186.6,150"/>
<ArcSegment Point="13.4,150" SweepDirection="Clockwise" Size="100,100"/>
<LineSegment Point="100,100"/>
</PathFigure.Segments>
</PathFigure>
</PathGeometry>
</GeometryDrawing.Geometry>
</GeometryDrawing>
<GeometryDrawing Brush="Green">
<GeometryDrawing.Pen>
<Pen Brush="Black"/>
</GeometryDrawing.Pen>
<GeometryDrawing.Geometry>
<PathGeometry>
<PathFigure StartPoint="100,100">
<PathFigure.Segments>
<LineSegment Point="13.4,150"/>
<ArcSegment Point="100,0" SweepDirection="Clockwise" Size="100,100"/>
<LineSegment Point="100,100"/>
</PathFigure.Segments>
</PathFigure>
</PathGeometry>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
... ve
XmlTextWriter writer = new XmlTextWriter(@"C:\Users\Public\Test.xml", new UTF8Encoding());
writer.Formatting = Formatting.Indented;
writer.Indentation = 1;
writer.IndentChar = '\t';
XamlWriter.Save(segmentsDrawing, writer);
... aşağıdaki olsun ... serialize mini dilde. Uygulamanızda bunu hemen kullanmak istiyorsanız, onu bir
MemoryStream
'a yazıp ondan bir
XmlDocument
oluşturarak verileri alın.
+0
Bu döner kavşak, ama bu sadece hile yapabilir! Teşekkürler... –
İlgili konular
- 1. UInt8 Dizisini Dize Dönüştür
- 2. Bitmap'i Dize Dönüştür
- 3. Dize için vücut bağımsız değişkenini dönüştür ve
- 4. NSAttributedString öğesini dize ve geri dönüştür
- 5. 2B Dize Dizisi'nde 2B Listesini Dönüştür C#
- 6. Dosya Dönüştür [] [] Java
- 7. İkili dizgeyi tamsayıya dönüştür
- 8. Düğüm arabelleğe dönüştür Düğüm
- 9. asp.net mvc tıraş bıçağı iki öğeyi çarpıp dize dönüştür
- 10. NSMutableAttributedString öğesini NSString'e dönüştür
- 11. Asp.Net: PDF'i Image'e Dönüştür
- 12. Kullanıcı girdisini tamsayıya dönüştür
- 13. Biçime dönüştür YYYY-AA-GG
- 14. Onaltılı dizeyi IP Adresine Dönüştür
- 15. golang "tür [] dizgisini" dizgeye dönüştür "
- 16. Ascii kodlamasını python'a dönüştür (hızlıca)
- 17. HTML'yi XAML'ye dönüştür
- 18. Android: Noktaları piksellere dönüştür
- 19. CSS'yi HTML'ye Dönüştür
- 20. Android'de bitmap'i görünümüne dönüştür
- 21. Veritabanını PDF'ye Dönüştür
- 22. CString'i std :: wstdr'e dönüştür
- 23. Ruby - string'i tarihe dönüştür
- 24. % SystemDrive% sürücüyü harfe dönüştür
- 25. VBA Diziyi dönüştür Tür
- 26. Diziyi ActiveRecord'a Dönüştür :: Bağlantı
- 27. Django kalıp dizgeye dönüştür
- 28. Diski piksellere dönüştür
- 29. Std :: vektörünü diziye dönüştür.
- 30. PostScript'i Zebra'a dönüştür
Sanırım öyle değil, çünkü daha doğrusu başka bir şeydir: mini dil geometriye ayrıştırılır. –
"WPF'de yol dizelerini yol nesnelerine program aracılığıyla nasıl dönüştürdüğünüzü belirlemek çok zor değil" Bazı kaynaklarınızı paylaşmak ister misiniz? – jpierson
Elbette! http://stackoverflow.com/questions/2029680/wpf-c-path-how-to-get-from-a-string-with-path-data-to-geometry-in-code-not-in –