none
Bordes nitidos RRS feed

  • Pregunta

  • Buenas a todos, continuando con mi aprendizaje en WPF, tengo un problema a la hora de crear un botón.

    Creo un nuevo control a partir de un rectángulo que lo defino como Button, luego edito el Style del mismo y le añado otro rectángulo, quedando finalmente dos rectángulos y un contenedor para el texto. El primer rectángulo que se encuentra al extremo le aplico un color gris claro y al segundo rectángulo le aplico un negro con márgenes a 2px. Finalmente al contenedor le aplico otro gris, quedando como el de la imagen siguiente:

    http://img706.imageshack.us/img706/5953/problemasbotones.gif

    http://img715.imageshack.us/img715/3478/problemasbotoneszoom.gif

    El problema es que, como podeis ver, uno de los botones (no creado por mí), tiene las mismas propiedades y se ven los bordes completamente definidos, en cambio el mio a medida que el zoom lo pones a 100%, se difuminan dichos bordes. Ojo, la segunda imagen es con el zoom del photoshop no del Blend (con este último, si amplías más del 100% se ve bien, sin difuminaciones).

     

    ¿Qué no le estoy aplicando o alguien sabe donde puedo estar cometiendo el error?.

     

    Muchas gracias a todos.

    lunes, 4 de octubre de 2010 16:29

Respuestas

Todas las respuestas

  • Hola Spaikers

    Prueba a establecer la propiedad SnapToDevicePixels a True en el botón. Esto forzará a dibujar el botón usando el tamaño de pixeles y la colocacion de pixeles del dispositivo.

    Puedes encontrar más info aquí:

    http://msdn.microsoft.com/en-us/library/system.windows.uielement.snapstodevicepixels.aspx

    Espero que te sirva, un gran saludo!


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog
    Sigueme en Twitter
    • Marcado como respuesta Spaikers lunes, 4 de octubre de 2010 22:20
    lunes, 4 de octubre de 2010 17:54
    Moderador
  • Efectivamente Josue, se trataba de dicha propiedad.

    Además, aplicándoselo a otros objetos he conseguido arreglar algunos problemas gráficos por lo que mi pregunta es ¿debo activar dicha propiedad siempre o hay algún procedimiento a seguir?.

    Muchas gracias y por cierto, cuanto tengo tiempo, de vez en cuando le hecho un vistazo a tu blog.
    lunes, 4 de octubre de 2010 22:21
  • Buenas Spaikers,

    Gracias por leerme :)

    Puedes establecer la propiedad en la grid principal de la ventana y automáticamente se aplicará a todos los controles que tengas dentro de ella, a no ser que en alguno la establezcas explicitamente a false.

    En WPF las propiedades se heredan en cascada, los hijos heredan siempre las propiedades de los padres a no ser que la misma propiedad se establezca en el hijo, en ese caso es mandatorio para WPF hacer caso a la propiedad directa del hijo, despues de todo, si la has escrito explicitamente, sera porque quieres que coja ese valor en ese objeto.

    Un gran saludo y Happy coding!!


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog
    Sigueme en Twitter
    martes, 5 de octubre de 2010 6:17
    Moderador