2011-12-15 13 views
10

Estoy trabajando con XAML en Windows 8 Metro.¿Cómo me deshago del margen adicional alrededor de un botón?

Tengo una grilla con varias filas. La primera fila contiene un botón y la segunda una imagen. La imagen tiene un total de 600 unidades de ancho, y el botón tiene un contenido de imagen. El problema es que no importa cómo estilo el botón, su borde izquierdo no coincide con el borde izquierdo de la imagen. Mientras hurgando con los ajustes, parece que el botón incluye un margen extra fuera de la frontera, a pesar de que he establecido el margen (y el relleno, y grosor del borde) del botón a 0.

dónde viene esta salir de la frontera? ¿Como me deshago de esto? Traté de crear un estilo personalizado con un valor de Plantilla (a continuación) pero ignora mis otras configuraciones de estilo. No pude encontrar mucha documentación útil sobre cómo construir la plantilla, o incluso si ese es el problema.

<Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="Button"> 
      <Grid> 
       <ContentPresenter Content="{TemplateBinding Content}" Margin="0" /> 
      </Grid> 
     </ControlTemplate> 
    </Setter.Value> 
</Setter> 
+0

Esto parece ser un error. Los botones con contenido de imagen rinden dos píxeles a la derecha de los botones sin contenido de imagen; esto es más fácil de ver en un panel de pila vertical. Y podría haber una magia de píxels fraccionarios que también esté provocando falsos bordes falsos en el hoverrover. – AndrewS

Respuesta

15

Es realmente molesto. La solución que parece funcionar para mí es:

<Button Background="Crimson" 
    HorizontalAlignment="Stretch" 
    VerticalAlignment="Stretch" 
    BorderThickness="0" 
    Margin="-3">Click me!</Button> 

El secreto está en el valor negativo de margen.

+0

bueno, eso parece funcionar, gracias ... los valores de margen negativo me parecen muy incorrectos, ¡pero lo que sea que funcione! – AndrewS

+2

¿Hay una mejor solución para esto? Actualmente tengo que usar este método, pero a medida que las resoluciones de pantalla aumentan, el botón se ve desagradable una vez que el botón "cabe" en el espacio y tiene un margen negativo. ContentTemplates parece ser el camino a seguir, pero aún tengo que descubrirlos. – Karl

Cuestiones relacionadas