winform和wpf的转换问题

baidu_27740057 2015-04-27 09:16:12
我用wpf的xaml写了一个简单的用户界面,就是在menu里面有几个操作,可是仅仅写了界面,后台没有任何逻辑实现的代码(相当于是个空壳),如下图:


然后我又用winform设计了一个窗口,并且写了每个按钮的功能代码,在winform中是可以实现相关操作的(相当于是一个完整的软件了),如下图:

我觉得我wpf的用户界面更好看,想要用我WPF的用户界面来调用winform,请问怎么实现?
...全文
622 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_27740057 2015-04-28
  • 打赏
  • 举报
回复
引用 12 楼 duanzi_peng 的回复:
[quote=引用 11 楼 baidu_27740057 的回复:] [quote=引用 10 楼 duanzi_peng 的回复:] if (ofd.ShowDialog()== true) 把Value 去掉
还是不行呢,..错误 1 运算符“==”无法应用于“System.Windows.Forms.DialogResult”和“bool”类型的操作数 if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)这样好像可以。。。我运行了下有弹出对话框让我选择文件...我现在是在纠结如何显示图片,因为我之前的winform代码是 pictureBox1.Image = img1.ToBitmap(); 现在这个picturebox肯定不能用了呀...[/quote] 在 System.Windows.Forms 与 Microsoft.Win3 下都有这个DialogResult ,看看 你using的是那一个。 显示图片, 可以设置Filter[/quote] Filter我不太懂。。。我想知道image可以吗?我用image.source来显示,他的后面应该是什么形式的img1呢?
baidu_27740057 2015-04-28
  • 打赏
  • 举报
回复
引用 13 楼 Z65443344 的回复:
ofd.ShowDialog() == System.Windows.Forms.DialogResult.Cancel 既然这样可以,那ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK应该也可以啊 反正就那么几种,是个枚举类型 看你逻辑是相等的时候return还是相等的时候执行代码,根据逻辑的不同,选用OK或Cancel
谢谢,你说的是对的,这个问题我已经解决了,我用的ok。我现在想要显示张图片,代码如下 if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { img1 = new Image<Bgr, Byte>(ofd.FileName); image1.Source = img1.ToBitmap(); } 错误 1 无法将类型“System.Drawing.Bitmap”隐式转换为“System.Windows.Media.ImageSource” 该怎么解决呢
baidu_27740057 2015-04-28
  • 打赏
  • 举报
回复
谢谢大家,我已经弄出来。在wpf里面调用winform的picturebox的控件就好了,调用过来之后,就可以完全粘贴winform的代码。
baidu_27740057 2015-04-28
  • 打赏
  • 举报
回复
引用 16 楼 Z65443344 的回复:
new Image 改成Image.FromFile(path)
我不太明白这个方法。。。。
baidu_27740057 2015-04-28
  • 打赏
  • 举报
回复
引用 18 楼 sp1234 的回复:
BitmapImage 对象才是一种 ImageSource --> BitmapImage 对象类才是一种 ImageSource
确实是类型搞错了无法转换,关键是我现在已经定义了一个全局的 Image<Bgr, Byte> img1,而且后面对这个图片的处理需要它是Image<Bgr, Byte>这个类型的。我要用什么控件才能让Image<Bgr, Byte>类型的图片打开显示在我的wpf软件中呢?我之前用的winform,picturebox就可以解决,这里有没有类似的控件呢?谢谢了。
  • 打赏
  • 举报
回复
BitmapImage 对象才是一种 ImageSource --> BitmapImage 对象类才是一种 ImageSource
  • 打赏
  • 举报
回复
你的类型搞错了。BitmapImage 对象才是一种 ImageSource,而 BitMap 并不是。
於黾 2015-04-28
  • 打赏
  • 举报
回复
new Image 改成Image.FromFile(path)
exception92 2015-04-27
  • 打赏
  • 举报
回复
引用 11 楼 baidu_27740057 的回复:
[quote=引用 10 楼 duanzi_peng 的回复:] if (ofd.ShowDialog()== true) 把Value 去掉
还是不行呢,..错误 1 运算符“==”无法应用于“System.Windows.Forms.DialogResult”和“bool”类型的操作数 if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)这样好像可以。。。我运行了下有弹出对话框让我选择文件...我现在是在纠结如何显示图片,因为我之前的winform代码是 pictureBox1.Image = img1.ToBitmap(); 现在这个picturebox肯定不能用了呀...[/quote] 在 System.Windows.Forms 与 Microsoft.Win3 下都有这个DialogResult ,看看 你using的是那一个。 显示图片, 可以设置Filter
baidu_27740057 2015-04-27
  • 打赏
  • 举报
回复
引用 10 楼 duanzi_peng 的回复:
if (ofd.ShowDialog()== true) 把Value 去掉
还是不行呢,..错误 1 运算符“==”无法应用于“System.Windows.Forms.DialogResult”和“bool”类型的操作数 if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)这样好像可以。。。我运行了下有弹出对话框让我选择文件...我现在是在纠结如何显示图片,因为我之前的winform代码是 pictureBox1.Image = img1.ToBitmap(); 现在这个picturebox肯定不能用了呀...
exception92 2015-04-27
  • 打赏
  • 举报
回复
if (ofd.ShowDialog()== true) 把Value 去掉
baidu_27740057 2015-04-27
  • 打赏
  • 举报
回复
引用 8 楼 duanzi_peng 的回复:
System.Windows.Forms.DialogResult = DialogResult.Ok
好像还是不行。。。 if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)这样好像可以。。。 我之前在winform中图片是显示在picturebox中,请问下wpf中怎么办才好?我是新手。。。可能问题比较多,,,还请大神们耐心赐教。。。
exception92 2015-04-27
  • 打赏
  • 举报
回复
System.Windows.Forms.DialogResult = DialogResult.Ok
exception92 2015-04-27
  • 打赏
  • 举报
回复
System.Windows.Forms.DialogResult = DialogResult.Ok
baidu_27740057 2015-04-27
  • 打赏
  • 举报
回复
引用 3 楼 Z65443344 的回复:
有什么区别吗 button里的代码粘过来就好了,没让你把事件函数也粘过来啊
引用 5 楼 duanzi_peng 的回复:
后台代码都是一样的。如果非得调用winform,可以使用 WindowsFormsHost
我想再请问下我在写打开文件夹的时候, if (ofd.ShowDialog().Value == true)为什么不对? 错误 1 “System.Windows.Forms.DialogResult”不包含“Value”的定义,并且找不到可接受类型为“System.Windows.Forms.DialogResult”的第一个参数的扩展方法“Value”(是否缺少 using 指令或程序集引用?) E:\zqs\vs2010\project\menu\menu\MainWindow.xaml.cs 44 34 menu
exception92 2015-04-27
  • 打赏
  • 举报
回复
后台代码都是一样的。如果非得调用winform,可以使用 WindowsFormsHost
baidu_27740057 2015-04-27
  • 打赏
  • 举报
回复
引用 3 楼 Z65443344 的回复:
有什么区别吗 button里的代码粘过来就好了,没让你把事件函数也粘过来啊
哦哦哦,对哈。。我先去试试哈,,有什么问题再请教你!谢谢!!
於黾 2015-04-27
  • 打赏
  • 举报
回复
有什么区别吗 button里的代码粘过来就好了,没让你把事件函数也粘过来啊
baidu_27740057 2015-04-27
  • 打赏
  • 举报
回复
引用 1 楼 Z65443344 的回复:
既然你觉得WPF好看,那为什么还要调用winform 调用了,显示出来的winform也不是WPF风格啊 你把winform里面的代码粘过来不就得了
当时是因为我对WPF根本不懂,老师又要求必须要用WPF写界面,,所以才想到了用winform来做逻辑,。,最后 把它弄到wpf界面中来这个破办法。。。现在骑虎难下呀。。。你说直接把winform里面的代码粘过来可以吗?我winform全是button,这边全是菜单栏呀。。。
於黾 2015-04-27
  • 打赏
  • 举报
回复
既然你觉得WPF好看,那为什么还要调用winform 调用了,显示出来的winform也不是WPF风格啊 你把winform里面的代码粘过来不就得了
加载更多回复(1)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧