visual tutorial studio que puede presentacion hacer español ejemplos con aplicacion animaciones c# wpf xaml vector-graphics xamlreader

c# - tutorial - Cargar gráficos vectoriales desde archivos XAML programáticamente en una aplicación WPF



wpf presentacion (1)

De acuerdo, encontré la solución yo solo y aquí está:

Mi proyecto se llama "Editor" y coloqué el archivo XAML que quiero leer en la carpeta "Gráficos". Este archivo se llama "Image.xaml". El árbol del proyecto se ve así:

El archivo XAML en sí tiene este código:

<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>

(se necesita la referencia de xaml namespace ''xmlns'')

El código utilizado para cargar el archivo es:

StreamResourceInfo sr = Application.GetResourceStream(new Uri("Editor;component/Graphics/Image.xaml", UriKind.Relative)); Canvas result = (Canvas)XamlReader.Load(new XmlTextReader(sr.Stream)); layoutRoot.Children.Add(result);

''layoutRoot'' es el nombre del lienzo principal de mi aplicación.

Última sutileza: la propiedad ''BuildAction'' del archivo * .xaml debe establecerse en ''Recurso'', o encontrará una XamlParseException con valor hexadecimal 0x0C (para cambiar esta propiedad, haga clic derecho en el archivo en la vista de árbol del proyecto).

Espero que esto pueda ayudar.

Me gustaría cargar gráficos vectoriales almacenados como archivos XAML (archivos separados, no en un diccionario), incrustados en mi aplicación, y tengo algunas preguntas para hacerlo:

  1. XAML parece un poco ambiguo, ya que se puede usar para representar recursos estáticos como imágenes vectoriales o interfaces que se construyen dinámicamente como las de WPF. Debido a esto, el formato de una imagen vectorial XAML no está claro para mí: ¿cuál debería ser el elemento raíz, como la etiqueta "svg" para las imágenes del vector svg? Actualmente, estoy utilizando un lienzo como el elemento principal, ya que quiero trazar mis gráficos en otro lienzo.

  2. ¿Cuál es el mejor método para cargar esos archivos programáticamente (es decir, para crear el lienzo a partir de los archivos xaml)? He visto (y probado) diferentes soluciones con XamlReader, pero nada funcionó: la aplicación falla y el depurador no ayuda (la mayoría de los problemas que he encontrado parecen ocurrir durante el análisis, y el mensaje de error no estaba claro).

He leído http://learnwpf.com/post/2006/06/04/How-do-I-Include-Vector-Based-Image-Resources-in-my-WPF-Application.aspx , pero el enlace a el artículo que trata sobre la carga de archivos de recursos está muerto y las imágenes no se crean con el código C #.