如何:使用自定义可视化效果

更新:2007 年 11 月

本示例演示如何在可扩展应用程序标记语言 (XAML) 中使用自定义效果。

自定义效果是使用非托管 API 创建的,它们将生成一个组件对象模型 (COM)动态链接库 (DLL)。若要在托管代码中使用自定义效果,可以使用托管程序集来定义 BitmapEffect 并与 组件对象模型 (COM) 库进行交互。若要在应用程序中使用此自定义效果,必须引用该程序集,而效果必须使用该程序集引用的命名空间。有关完整示例,请参见 自定义 BitmapEffect 示例 - RGBFilter 示例

示例

下面的示例演示如何定义命名空间并引用实现自定义效果的程序集。

<Window x:Class="RGBFilterEffectTest.Window1"
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    Title="RGBFilterEffectTest" Height="400" Width="300"
    xmlns:RGBFilter="clr-namespace:RGBFilter;assembly=ManagedRGBFilterBitmapEffect"
    xmlns:MappingPIGen1="clr-namespace:RGBFilter;assembly=ManagedRGBFilterBitmapEffect">

下面的示例通过引用上面示例中提供的命名空间来使用自定义效果。

<Image Name="RTB" Source="images/kittens.jpg">
  <Image.BitmapEffect>
    <RGBFilter:RGBFilterBitmapEffect >
      <RGBFilter:RGBFilterBitmapEffect.Red>
        <Binding ElementName="redSlider" Path="Value"/>
      </RGBFilter:RGBFilterBitmapEffect.Red>
      <RGBFilter:RGBFilterBitmapEffect.Green>
        <Binding ElementName="greenSlider" Path="Value"/>
      </RGBFilter:RGBFilterBitmapEffect.Green>
      <RGBFilter:RGBFilterBitmapEffect.Blue>
        <Binding ElementName="blueSlider" Path="Value"/>
      </RGBFilter:RGBFilterBitmapEffect.Blue>
    </RGBFilter:RGBFilterBitmapEffect >
  </Image.BitmapEffect>
</Image>

请参见

任务

自定义 BitmapEffect 示例 - RGBFilter 示例

概念

位图效果概述

参考

Unmanaged BitmapEffect API