Wpf将图像文件格式示例gif或jpg拖到inkcanvas上

时间:2014-08-21 03:51:36

标签: c# wpf gif mediaelement inkcanvas

如果我要将jpg图片或gif图片拖到inkcanvas,问题是如何区分这2种图片格式? 当我运行它时,我将gif图像拖到inkcanvas但它没有进入第一个条件。它转到了其他地方。

gif被声明为

Viewbox vbMedia = new Viewbox();    
MediaElement gif = new MediaElement();    
if (gif.Source == new Uri("E:\\New folder\\Drawing\\Images\\Themes\\Gif\\bruce.gif", UriKind.Absolute))
{
    vbMedia.Width = 70;
    vbMedia.Height = 70;

    gif.LoadedBehavior = MediaState.Play;
    gif.UnloadedBehavior = MediaState.Play;

    vbMedia.RenderTransform = group;                    
    vbMedia.Child = gif;

    this.InkCanvas1.Children.Add(vbMedia);        
}                
else                
{                    
    image.Width = 70;                  
    image.Height = 70;                    
    image.RenderTransform = group;

    this.InkCanvas1.Children.Add(image);        
}

1 个答案:

答案 0 :(得分:0)

首先,您始终处于其他状态,因为您在检查MediaElement gif值之前创建了gif.Source行。因此,此时它始终为空,并且您总是处于其他状态。

现在提出你的问题

  

如何区分这2种图像格式?

我认为这个答案可能会对您有所帮助:How can I know what image format I get from a stream? 在你的情况下,它可能是这样的:

    System.Drawing.Image image = System.Drawing.Image.FromFile("E:\\New folder\\Drawing\\Images\\Themes\\Gif\\bruce.gif");
    if (ImageFormat.Gif.Equals(image.RawFormat))
    {
        // GIF
    }
    else if (ImageFormat.Jpeg.Equals(image.RawFormat))
    {
        // JPEG
    }