2009-01-30 12 views
5

Cuando arrastro un control desde la caja de herramientas a la superficie de diseño de Visual Studio 2008 WPF, establece un margen basado en dónde lo solté y un valor predeterminado tamaño.Cómo puedo evitar que el diseñador de VS WPF ponga márgenes en cada objeto del cuadro de herramientas

¿Hay alguna manera de evitar que los ajustes de VS? Cuando dejo caer un control en un panel de distribución, quiero que fluya a los controles existentes en el panel.

Gracias!

+0

Actualmente me está molestando. – Will

Respuesta

3

Nunca he encontrado una manera de evitar esto. Simplemente escribo el XAML en su lugar.

EDITAR:

me escribió hace las anteriores casi tres años. Mientras tanto, parece que la experiencia del tiempo de diseño ha mejorado mucho.

Si bien el diseñador aún agrega márgenes codificados si arrastra y suelta, hay formas de eliminar esos márgenes sin tener que hacerlo a mano.

Aquí hay un enlace a un artículo que ilustra cómo utilizar las herramientas de diseño en Visual Studio 2010 para diseñar un formulario sin tener que escribir ningún XAML. (A pesar del título, se trata de WPF.)

Layout Techniques for Windows Form Developers

+0

Lo mismo aquí. El diseñador de WPF es demasiado lento y con errores para mi gusto. – Andy

+0

Estoy de acuerdo. El diseñador ha mejorado al proporcionar una pantalla representativa de lo que denota xaml, pero no sé si incluso es posible que brinde la asombrosa experiencia de arrastrar y soltar del diseñador de formas de inversión dado el modelo subyacente radicalmente diferente. –

+1

No veo ninguna razón por la que * no * sea posible. Puede arrastrar y colocar en ASP.NET en el diseñador o el marcado. No parece un gran paso hacer lo mismo en WPF. Pero por alguna razón, Microsoft no lo ha convertido en una prioridad. –

0

Cuando se me cae un control en un StackPanel, que no aporta márgenes, que "fluye" con el resto.

Los controles que se colocan en la superficie de diseño tienen un margen por defecto porque así es como sabe dónde se coloca. Lo que normalmente hago es crear una grilla y establecer su margen donde quiero, luego crear columnas y filas para poner controles. Dejo caer en mis otros controles que agregarán márgenes que generalmente no son lo que quiero. Después de tener todos mis controles en mi cuadrícula, colocados razonablemente, cambio a la vista XAML y elimino el margen por completo (lo que hace que un control como un botón llene todo el espacio), o hago que el margen sea algo así como 5, lo que pone un poco buen relleno alrededor del control.

Conclusión ... y esto es especialmente cierto con el desarrollo de Silverlight, debe acostumbrarse a manipular el XAML directamente. Es la única forma en que obtendrá el diseño exactamente donde lo desee. Esta es mi opinión y la mayoría de todos en mi tienda que hace desarrollo de WPF/silverlight.

0

Desafortunadamente, no parece haber un medio para hacer esto.

El tamaño predeterminado se establece como resultado de la manipulación del tamaño de su control es el diseñador. Cuando aumenta el ancho y/o alto de un control, el diseñador interpreta sus acciones como una solicitud para realizar el control que especifica ancho y/o altura.

Una situación similar se encuentra con los márgenes. Al modificar la posición de su control dentro del diseñador, modifica las propiedades para lograr el diseño que ha creado. En el caso de la mayoría de los contenedores, la solución más simple es modificar los márgenes para lograr la posición deseada, como ya ha señalado, la solución simple no siempre es la más deseada.

Personalmente, prefiero usar solo el editor de XAML y solo de vez en cuando echar un vistazo al Diseñador de WPF cuando quiero ver el diseño actual. También tiendo a favorecer el uso de la cuadrícula para el diseño de la mayoría de mis ventanas/controles, ya que proporciona la mayor flexibilidad no solo para el dimensionamiento y el posicionamiento, sino también para otras tareas/características como animaciones, transformaciones, etc.

Cuestiones relacionadas