Información general sobre efectos de mapa de bits
Actualización: noviembre 2007
Los efectos de mapa de bits permiten a los diseñadores y programadores aplicar efectos visuales al contenido Windows Presentation Foundation (WPF) representado. Por ejemplo, los efectos de mapa de bits permiten aplicar con facilidad un efecto DropShadowBitmapEffect o un efecto de desenfoque a una imagen o un botón.
Este tema contiene las secciones siguientes.
- Efectos de mapa de bits en WPF
- Cómo aplicar un efecto
- Crear efectos personalizados
- Temas relacionados
Efectos de mapa de bits en WPF
Los efectos de mapa de bits (objetoBitmapEffect) son operaciones simples de procesamiento de píxeles. Un efecto de mapa de bits acepta un objeto BitmapSource como entrada y genera un nuevo BitmapSource después de aplicar el efecto, como un desenfoque o una sombra. Cada efecto de mapa de bits expone propiedades que pueden controlar las propiedades de filtrado, como Radius de BlurBitmapEffect.
Como caso especial, en WPF, los efectos se pueden establecer como propiedades en los objetos Visual activos, como Button o TextBox. El procesamiento de píxeles se aplica y representa en tiempo de ejecución. En este caso, al realizar la representación, un objeto Visual se convierte automáticamente en su BitmapSource equivalente y se utiliza como datos de entrada en BitmapEffect. El resultado reemplaza el comportamiento de representación predeterminado del objeto Visual. Por este motivo, los objetos BitmapEffect fuerzan la representación de los objetos visuales únicamente en software, es decir, no se aplica ninguna aceleración de hardware a los elementos visuales cuando se aplican efectos.
BlurBitmapEffect simula la apariencia de un objeto a través de una lente desenfocada. Vea Cómo: Aplicar un efecto de desenfoque a un objeto Visual para obtener un ejemplo.
OuterGlowBitmapEffect crea un halo de color alrededor del perímetro de un objeto. Vea Cómo: Crear un efecto de resplandor en el margen externo de un objeto para obtener un ejemplo.
DropShadowBitmapEffect crea una sombra detrás de un objeto. Vea Cómo: Crear un efecto visual de sombra paralela para obtener un ejemplo.
BevelBitmapEffect crea un ángulo oblicuo que eleva la superficie de una imagen de acuerdo con una curva especificada. Vea Cómo: Crear un efecto visual con bisel para obtener un ejemplo.
EmbossBitmapEffect crea un mapa de rugosidad de un objeto Visual a fin de dar la impresión de profundidad y textura a partir de una fuente de luz artificial. Vea Cómo: Crear un efecto visual con relieves para obtener un ejemplo.
Nota
Los efectos de mapa de bits de WPF se representan en modo de software. Cualquier objeto que aplique un efecto también se representará en software. Cuando más se degrada el rendimiento es al utilizar efectos de mapa de bits en objetos visuales grandes o al animar las propiedades de un efecto de mapa de bits. Esto no quiere decir que no haya que utilizar nunca los efectos de mapa de bits, pero sí debe extremar las precauciones y efectuar pruebas exhaustivas para asegurarse de que los usuarios obtengan la experiencia esperada.
Nota
Los efectos de mapa de bits de WPF no admiten la ejecución de confianza parcial. Una aplicación debe tener permisos de plena confianza para usar efectos de mapa de bits.
Cómo aplicar un efecto
BitmapEffect es una propiedad de Visual. Así pues, aplicar efectos a los objetos visuales, tales como Button, Image, DrawingVisual o UIElement, es tan sencillo como establecer la propiedad. BitmapEffect se puede establecer en un solo objeto BitmapEffect, pero también se pueden encadenar varios efectos mediante el objeto BitmapEffectGroup.
En el ejemplo de código siguiente se muestra cómo se aplica BitmapEffect en Lenguaje de marcado de aplicaciones extensible (XAML).
<Button Width="200">You Can't Read This!
<Button.BitmapEffect>
<!-- <BitmapEffectGroup> would go here if you wanted to apply more
then one effect to the Button. However, in this example only
one effect is being applied so BitmapEffectGroup does not need
to be included. -->
<!-- The larger the Radius, the more blurring. The default range is 20.
In addition, the KernelType is set to a box kernel. A box kernel
creates less disruption (less blur) then the default Gaussian kernel. -->
<BlurBitmapEffect Radius="10" KernelType="Box" />
</Button.BitmapEffect>
</Button>
En el ejemplo de código siguiente se muestra cómo se aplica BitmapEffect mediante código.
// Get a reference to the Button.
Button myButton = (Button)sender;
// Initialize a new BlurBitmapEffect that will be applied
// to the Button.
BlurBitmapEffect myBlurEffect = new BlurBitmapEffect();
// Set the Radius property of the blur. This determines how
// blurry the effect will be. The larger the radius, the more
// blurring.
myBlurEffect.Radius = 10;
// Set the KernelType property of the blur. A KernalType of "Box"
// creates less blur than the Gaussian kernal type.
myBlurEffect.KernelType = KernelType.Box;
// Apply the bitmap effect to the Button.
myButton.BitmapEffect = myBlurEffect;
Consulte Cómo: Crear varios efectos visuales para obtener ejemplos en los que se muestra cómo aplicar varios efectos mediante el objeto BitmapEffectGroup.
Nota
Cuando BitmapEffect se aplica a un contenedor de diseño, como DockPanel o Canvas, el efecto se aplica al árbol visual del elemento u objeto visual, incluidos todos sus elementos secundarios.
Crear efectos personalizados
WPF también proporciona interfaces no administradas para crear efectos personalizados que se pueden usar en aplicaciones de WPF administradas. Si desea obtener material de referencia adicional para crear efectos de mapa de bits personalizados, consulte la documentación de Unmanaged WPF Bitmap Effect.
Para obtener un ejemplo de efecto de mapa de bits personalizado, consulte Ejemplo Custom BitmapEffect Sample: RGBFilter. En este ejemplo se muestran las interfaces no administradas que se necesitan para crear un efecto personalizado, una capa de interoperabilidad administrada y una aplicación de WPF que utiliza el efecto personalizado.
Vea también
Tareas
Cómo: Animar un efecto visual de desenfoque
Cómo: Animar un efecto de resplandor
Cómo: Animar un efecto visual de sombra paralela
Cómo: Animar un efecto visual con bisel
Cómo: Animar un efecto visual con relieves
Conceptos
Información general sobre imágenes
Seguridad de Windows Presentation Foundation
Información general sobre la representación de gráficos en Windows Presentation Foundation
Optimizar el rendimiento: Imágenes y gráficos 2D