C# 如果图像打开与。。。还有其他的吗?

C# 如果图像打开与。。。还有其他的吗?,c#,wpf,windows,image,C#,Wpf,Windows,Image,我只是想知道这里是否有人知道如何编写代码,如何检查项目是否为图像,然后使用Windows图像预览打开,或者使用内置媒体播放器打开 代码如下: private bool listbox3job() { AxWMPLib.AxWindowsMediaPlayer axWmp = wfh.Child as AxWMPLib.AxWindowsMediaPlayer; WMPLib.IWMPPlaylist playlist = axWmp.newPlaylist("myPlaylist

我只是想知道这里是否有人知道如何编写代码,如何检查项目是否为图像,然后使用Windows图像预览打开,或者使用内置媒体播放器打开

代码如下:

private bool listbox3job()
{
    AxWMPLib.AxWindowsMediaPlayer axWmp = wfh.Child as AxWMPLib.AxWindowsMediaPlayer;
    WMPLib.IWMPPlaylist playlist = axWmp.newPlaylist("myPlaylist", string.Empty);
    DateTime? start = starttid2.Value;
    DateTime? end = sluttid2.Value;
    DateTime now = DateTime.Now;

    if (start == null || end == null)
    {
        return false;
    }
    else if (now >= start.Value && now <= end.Value)
    {
        foreach (var selected in listBox3.Items)
        {
            string s = selected.ToString();
            if (listBox3Dict.ContainsKey(s))
            {
    if (extentions.Contains(System.IO.Path.GetExtension(s).ToUpperInvariant()))
    {
        Process process = new Process();
        process.StartInfo.FileName = "rundll32.exe";
        process.StartInfo.Arguments = @"C:\WINDOWS\System32\shimgvw.dll,ImageView_Fullscreen " + listBox3Dict[s];
        process.Start();
        Thread.Sleep(7000);
        {
            exit();
        }
    }
    else
    {
                WMPLib.IWMPMedia temp = axWmp.newMedia(listBox3Dict[s]);  
                playlist.appendItem(temp);
                axWmp.settings.setMode("loop", true);
                axWmp.settings.autoStart = true;
                axWmp.currentPlaylist = playlist; 
    }
            }
        }
                return true;
    }
    return false;
}
private bool listbox3job()
{
AxWMPLib.AxWindowsMediaPlayer axWmp=wfh.Child作为AxWMPLib.AxWindowsMediaPlayer;
WMPLib.iwmplaylist playlist=axWmp.newPlaylist(“myPlaylist”,string.Empty);
DateTime?start=starttid2.Value;
DateTime?end=sluttid2.Value;
DateTime now=DateTime.now;
如果(开始==null | |结束==null)
{
返回false;
}
否则,如果(现在>=start.Value&&now在这里

 public static List<string> extentions = new List<string> { ".JPG", ".JPE", ".BMP", ".GIF", ".PNG" };

private void Open()
{

    foreach (var selected in listBox4.Items)
    {
        string s = selected.ToString();

        if (listBox4Dict.ContainsKey(s))
        {
            if (extentions.Contains(Path.GetExtension(s).ToUpperInvariant()))
            {
                Process process = new Process();
                process.StartInfo.FileName = "rundll32.exe";
                process.StartInfo.Arguments = @"C:\WINDOWS\System32\shimgvw.dll,ImageView_Fullscreen " +listBox4Dict[s];
                process.Start();
                process.WaitForExit();
                while (!process.HasExited)
                    Thread.Sleep(500);
            }
            else
            {
                Mediaplayer.URL = (listBox4Dict[s]);
            }
        }
    }
}
publicstaticlist-extensions=新列表{.JPG“,.JPE“,.BMP“,.GIF“,.PNG”};
私隐无效公开()
{
foreach(在listBox4.Items中选择的变量)
{
字符串s=选定的.ToString();
if(列表框4DICT.ContainsKey)
{
if(extensions.Contains(Path.GetExtension.toupper不变量())
{
流程=新流程();
process.StartInfo.FileName=“rundll32.exe”;
process.StartInfo.Arguments=@“C:\WINDOWS\System32\shimgvw.dll,ImageView_Fullscreen”+listBox4Dict[s];
process.Start();
process.WaitForExit();
当(!process.hasExit)退出时
睡眠(500);
}
其他的
{
Mediaplayer.URL=(listBox4Dict[s]);
}
}
}
}

Windows本身使用文件扩展名,并捕获所选处理程序引发的任何错误。@PieterGeerkens是,但“Mediaplayer.URL=(listBox4Dict[s]);”是内置媒体播放器,因此我需要一个if语句解决方案。代码看起来不错,但图像仍然通过“Mediaplayer.URL=(listBox4Dict[s])启动不检查您的代码,因为它运行正常,或者调试以了解原因,或者您的图像扩展不在上面的列表中再次检查我的第一篇文章,编辑图像的代码。jpg Extension btw.Thnx用于帮助我!nvm!在列表框上使用了GetFileName Withoutextension。感谢帮助!:)