在vs2010里面调试是好好的。但是生成安装包安装之后,一点击“打开”菜单,程序就退出了。不知道是什么问题。以前重来没碰到过。一下是“打开”菜单的事件函数。哪位碰到过这样的情况???
private void fileMenu_Click(object sender, RoutedEventArgs e)
{
System.Windows.Forms.OpenFileDialog open = new System.Windows.Forms.OpenFileDialog();
open.Multiselect = false;
open.Filter = "Video Files(*.avi;*.rmvb;*.flv;*.mp4)|*.avi;*.rmvb;*.flv;*.mp4|All Files(*.*)|*.*";
//open.ShowDialog();
if (open.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
if (null != videoSource && videoSource.IsRunning)
{
videoSource.Stop();
}
if (null == videoSource)
{
videoSource = new AForge.Video.FFMPEG.VideoFileSource(open.FileName);
videoSource.NewFrame += new AForge.Video.NewFrameEventHandler(videoSource_NewFrame);
}
else
{
videoSource.Source = open.FileName;
}
}
}
我觉得是你在WPF程序中使用了Winform的OpenFileDialog类的原因的, 你可以Microsoft.Win32.OpenFileDialog 这个类来测试下(使用这个方式来选择文件应该不会有问题的),也可以使用链接文章中提出的使用多线程来测试下的( http://www.silverlightchina.net/html/study/WPF/2012/0330/14980.html ),你这个问题应该是出现了StackOverflowException异常的
补充下(Microsoft.Win32.OpenFileDialog
类的使用):
Microsoft.Win32.OpenFileDialog ofd =
new
Microsoft.Win32.OpenFileDialog();
ofd.Filter =
"xml file|*.xml"
;
if
(ofd.ShowDialog() ==
true
)
{
// 把 if (open.ShowDialog() == System.Windows.Forms.DialogResult.OK)中的语句放在这里就好了
{
}