2012-01-28 19 views
8

Tengo una aplicación en la que estoy usando XAML para representar mi propio gráfico de objeto personalizado. Es bastante diferente del modelo de objetos WPF/Silverlight (y no se usa para el diseño de la interfaz de usuario), pero es posible visualizar el gráfico de objetos de una manera significativa. Lo que me gustaría hacer es agregar una extensión de diseñador a Visual Studio para visualizar mis objetos específicos, pero he tenido problemas para encontrar información sobre este tema. ¿Alguien podría señalarme en la dirección correcta?Visual Studio Diseñador XAML personalizado

Mi objetivo principal es tener algunos comentarios visuales simples del XAML actual; Todavía no estoy en un punto en el que necesito que el diseñador admita la edición visual. Si alguien tiene curiosidad, es una herramienta para simular maquinaria industrial; Uso XAML para definir los componentes de la máquina y sus conexiones, pero actualmente debo ejecutar la simulación completa para ver cómo se ve la máquina.

Respuesta

11

Necesita crear una extensión de Visual Studio (vsix) que analiza el archivo y visualiza el contenido. Tiene dos opciones, un complemento de Visual Studio o un paquete de Visual Studio (consulte los detalles de las diferencias en la pregunta 1139294). El primero es un poco más fácil para empezar, pero este último le dará más control, así que recomiendo si tiene la edición en mente en el futuro.

Comience por descargar SDK para crear extensiones de Visual Studio, también conocido como Visual Studio 2010 SP1 SDK. Para la versión anterior no SP1, haga clic en here.

Necesita familiarizarse con la creación de paquetes de Visual Studio. Para obtener un tutorial de Microsoft, vea Walkthrough: Creating a VSPackage. Si sigue el tutorial, debe tener todo lo necesario para activar un componente personalizado desde un comando de menú. Entonces, todo lo que realmente necesitas es , p. un componente normal de WPF que puede analizar/visualizar su XAML personalizado. También es probable que necesite asociar su tipo de archivo personalizado con su componente. Para esto necesita un ProvideEditorExtensionAttribute.

No hay nada como una muestra, así que vea The IDE Sample Editor del samples library. Esto crea un editor de archivos pequeño, tipos de archivo personalizados, que es similar a lo que está pidiendo. Reemplace el componente del editor de archivos y el tipo de archivo asociado con su editor y ¡casi ha terminado!

+4

+1 para "¡casi ha terminado!" – RQDQ

+0

Gracias, esto ayuda a apuntarme en la dirección correcta. Mi caso es ligeramente diferente (ya que no tengo un formato de archivo personalizado, sigue siendo una extensión * .xaml y aún se compila en una clase, con un archivo de código de respaldo, al igual que cualquier otra clase xaml). Sin embargo, esto sigue siendo bastante útil. –

+0

Sí, es interesante que, en un proyecto de Silverlight, VS sepa renderizar .xaml de una manera, y en un proyecto de WPF que VS sabe que lo represente de otra manera: tal vez haya alguna plantilla de proyecto mágico que pueda hacer también para especificar "para el proyecto type-x use * this * designer for xaml", etc ... – BrainSlugs83

Cuestiones relacionadas