2012-05-04 20 views
7

Bien, por mucho que lo intente, no puedo por mi propia vida deshacerme de este pequeño borde alrededor de mis botones.¿Quita todo el espacio adicional alrededor de un botón con una imagen?

Editar: Debo mencionar, en caso de que no lo deje claro, se trata de botones con una imagen en ellos, configurados en plano con el botón del tamaño de la imagen.

imágenes a continuación:

enter image description here Número uno, no puedo por la vida de mí conseguir estas fronteras a desaparecer. He verificado todo lo que puedo pensar. Son:

  • plana
  • frontera 0
  • sin márgenes
  • sin relleno
  • de tamaño de forma manual con el tamaño de la imagen (75 px)
  • en un diseño de tabla donde las columnas son todos:
    • de forma manual al ancho de la imagen (75px)
    • fronteras

Nada parece realmente "trabajo" para deshacerse de ellos. Si dimensiono las columnas hacia abajo para que sean 74px en vez de 75px, la mayoría desaparecen, pero quedan algunas. He triplicado y cuadriplicado las imágenes, y no tienen nada que captar que debería estar causando esto ... no hay transparencia alrededor de las fronteras, definitivamente no hay un borde que se vea así.

que me lleva al segundo problema:

enter image description here

botón Configuración de diálogo cuando es pequeño ...

enter image description here Ajustes de diálogo botón cuando está extendida.

El botón de configuración también se encuentra en el mismo panel de disposición de la tabla.

También he comprobado todas las configuraciones en el panel de diseño de la tabla ... No puedo encontrar ninguna configuración de relleno o margen ni nada que sugiera que esto debería estar sucediendo.

¿alguien tiene alguna experiencia con esto? Qué me estoy perdiendo..?

+0

Cuando todo lo demás falla ... Control.Region –

Respuesta

0

¿Has probado una barra de herramientas/tira/como se llame en estos días? Probablemente no vaya a ayudar, ya que creo que está protegido en su nombre, pero vale la pena intentarlo.

Al final puede tirar los botones a la basura y escribir su propio control. Un único control que gestione los botones N funcionará bien aquí.

No entiendo su segundo problema. ¿Cuál es el problema? Se solucionará si controlas tu control de todos modos.

+1

Esto no pretende ser una barra de herramientas/tira, se supone que deben verse como pestañas. Un control de pestañas no es muy adecuado debido a problemas que tuve con la apariencia en XP usando la máscara diseñada por el cliente. Entonces, los botones que simulan pestañas (desencadenan la ocultación y muestra de paneles) sí lo son. Los botones son en realidad controles personalizados; Tengo una solución temporal reemplazando a OnPaint y solo lo dibujo, pero esto causa problemas en otros lugares, ya que tengo otras instancias de esos controles en otra parte de la aplicación. Cuando se cambia el tamaño de un diálogo con ellos, no siempre se vuelven a dibujar correctamente. – trycatch

+0

también el segundo problema es que el botón con el engranaje pequeño desarrolla el síndrome de "relleno de línea blanca" cuando se estira el diálogo. (Tenga en cuenta que está bien cuando están juntos)? – trycatch

+0

Este es el problema con WinForms: los controles no son solo caros (hay recursos del sistema asignados con cada control), no les gusta existir sin problemas. Cada control es un objeto de ventana del sistema y cada uno es una pequeña isla en sí misma. Cuando necesite empaquetar "controles" juntos en píxeles perfectos, o si necesita que su aplicación tenga un mejor rendimiento, la solución es (generalmente) crear un solo control que proporcione el aspecto y la funcionalidad de los bits del interior (botones en su caso). ¿Cuántos "controles" crees que componen los widgets en una cinta de Office? Precisamente uno. – Tergiver

0

Aunque no es una solución para el problema separación, como solución alternativa puede hacer que el gradiente de color gris actualmente "detrás" de la imagen del panel "pestañas" y el control en una BackgroundImage para la TableLayoutPanel usando BackgroundImageLayout de Stretch. Si bien no se soluciona el problema de espaciado, lo haría imperceptible.

0

Escribir un control de winforms tiene sus desafíos (experiencia hablando aquí). Estoy de acuerdo en que eso es lo que se necesita, sin embargo. Dependiendo de su proyecto, puede considerar usar XAML y WPF. Proporciona los detalles finos que parece estar buscando en su aplicación.

Existen formas de alojar controles XAML en una aplicación winform, pero si siguió esta ruta, sería mejor crear una aplicación nativa WPF. Lo contrario también es cierto (controles winform en una aplicación WPF).

0

¿Ha comprobado si la imagen tiene píxeles transparentes alrededor de los píxeles gráficos que desea?

Puede ser una solución de cultivo simple.

1

Solución simple: utilizando directamente un PictureBox como si fuera un botón. Puede cambiar su imagen con el mouse o con el mouse.

Cuestiones relacionadas