Wpf XAML:图像应显示特定的位图帧

Wpf XAML:图像应显示特定的位图帧,wpf,image,xaml,bitmap,Wpf,Image,Xaml,Bitmap,下面是一篇短文,它应该能帮助你理解我的痛苦;( 我试图在图像控件中显示特定的位图帧(Tif页)。但找不到图像控件的任何适当成员 <Image> <Image.Source> <BitmapImage DecodePixelWidth="500" UriSource="C:\...\MultiPage.tif" CacheOption="OnLoad"

下面是一篇短文,它应该能帮助你理解我的痛苦;( 我试图在图像控件中显示特定的位图帧(Tif页)。但找不到图像控件的任何适当成员

<Image>
    <Image.Source>
        <BitmapImage 
            DecodePixelWidth="500"
            UriSource="C:\...\MultiPage.tif" 
            CacheOption="OnLoad" 
            CreateOptions="PreservePixelFormat"
            RenderOptions.BitmapScalingMode="HighQuality"
            RenderOptions.EdgeMode="Aliased"
            <!--The following line does not work of course but it should show what I mean:-->
            BitmapFrameIndex="3" 
        />
    </Image.Source>
</Image>

BitmapFrameIndex=“3”
/

您可以使用在代码中完成此操作,但我不确定是否完全可以在XAML中完成此操作。提供了对图像中各个帧的访问:

TiffBitmapDecoder tiffBitmapDecoder = new TiffBitmapDecoder(new Uri(filename), 
    BitmapCreateOptions.None, BitmapCacheOption.None);
然后,您可以访问如下所示的单个帧:

BitmapFrame bitmapFrame = tiffBitmapDecoder.Frames[yourRequiredIndex];
或者从中创建一个
BitmapSource
实例:

BitmapSource bitmapSource = tiffBitmapDecoder.Frames[yourRequiredIndex];
由于扩展了
ImageSource
类,您应该能够直接将其设置为
Image.Source
值:

YourImage.Source = bitmapSource;

@NoelWidmer您也许可以将其封装在派生的BitmapSource中,以使其在XAML中可用。