Compartir a través de


Información general sobre efectos de mapa de bits

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.

Nota importanteImportante

En .NET Framework 4 o posterior, la clase BitmapEffect está obsoleta.Si intenta utilizar la clase BitmapEffect, obtendrá una excepción obsoleta.La alternativa no obsoleta a la clase BitmapEffect es la clase Effect.En la mayoría de las situaciones, la clase Effect es significativamente más rápida.

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 presentació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.

NotaNota

Los efectos de mapa de bits de WPF se representan en modo de software.Cualquier objeto que aplique un efecto también se presenta por 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.

NotaNota

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 objetoBitmapEffectGroup.

En el ejemplo de código siguiente se muestra cómo se aplica BitmapEffect en Extensible Application Markup Language (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;
NotaNota

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.

Vea también

Referencia

BitmapEffectGroup

BitmapEffectInput

BitmapEffectCollection

Unmanaged WPF Bitmap Effect

Conceptos

Información general sobre imágenes

Seguridad (WPF)

Información general sobre la representación de gráficos en WPF

Optimizar el rendimiento: Imágenes y gráficos 2D