2012-05-01 18 views
12

Uygulamamda gömülü XAML dosyaları (ayrı dosyalar, bir sözlükte değil) olarak depolanan vektör grafiklerini yüklemek istiyorum ve bunu yapmak için birkaç sorum var: dinamik WPF olanlar gibi inşa ediliyor vektör resimler veya arayüzler gibi statik kaynakları ya temsil etmek için kullanılabilir beriBir WPF uygulamasında programlı olarak vektör grafikleri XAML dosyalarından yükleniyor

  1. XAML, biraz belirsiz görünüyor. Bu nedenle, bir XAML vektör görüntü formatı bana açık değil: svg vektör görüntüleri için "svg" etiketi gibi kök öğesi ne olmalıdır? Şu anda, grafikleri başka bir Canvas'da çizmek istediğimden beri bir üstteki öğe olarak Canvas kullanıyorum.

  2. Bu dosyayı programlı olarak yüklemek için en iyi yöntem nedir (yani, xaml dosyalarından Canvas oluşturmak için)? XamlReader ile farklı çözümler gördüm (ve denedim), ama hiçbir şey işe yaramadı: uygulama çöküyor ve hata ayıklayıcı yardımcı değil (karşılaştığım çoğu sorun ayrıştırma sırasında meydana gelmiş gibi görünüyor ve hata mesajı belirsiz).

Ben http://learnwpf.com/post/2006/06/04/How-do-I-Include-Vector-Based-Image-Resources-in-my-WPF-Application.aspx okudum ancak kaynak dosyaları yükleme ile ilgili makaleye bağlantı öldü ve görseller C# kodu kullanarak oluşturulmaz.

+12

Çözümü bulduğunuz ve herkesle paylaştığınız için harika, çözümü bir çözüm olarak ekleyebilir ve soruya eklemek yerine Yanıt olarak kabul ederseniz daha yararlı olacaktır. – akjoshi

cevap

8

Tamam, ben kendim çözüm buldum ve işte burada:

Projem "Editör" olarak adlandırılır ve bir "Grafik" klasöründe okumak istiyorum XAML dosyasını koydum. Bu dosya "Image.xaml" olarak adlandırılmıştır. proje ağaç şuna benzer:

<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     Width="40" Height="40"> 
    <Rectangle Canvas.Left="0" Canvas.Top="0" Fill="White" Stroke="Black" StrokeThickness="1" Height="40" Width="40" /> 
    <!-- ... --> 
</Canvas> 

(xaml ad 'xmlns' referans tabi)

kod kullandı:

enter image description here

XAML dosyası kendisi bu kodu tutar Dosyayı yüklemek için:

'layoutRoot' uygulamasının ana Canvas adıdır.

Son özellik: * .xaml dosyasının 'BuildAction' özelliği 'Resource' olarak ayarlanmalıdır, veya onaltılık değeri 0x0C olan bir XamlParseException ile karşılaşacaksınız (bu özelliği değiştirmek için, dosyadaki dosyaya sağ tıklayın). proje ağacı görüntüsü).

Bu yardımcı olabilir umarım.

+0

C# için başvurulan MainWindow.xaml'de hangi kodu kullanıyorsunuz? – Hoby

İlgili konular