MOGRE学习(二) MOGRE在WPF下的输出

在上面我闪已经介绍了Mogre是个什么样的生物,也瞧了一下它本身自带的Demo,算养了下眼。全部过完眼之后,我们会发现,它不仅有在控制台环境下运行的例子,也有在Winfrom下运行的,这也算顾及到用winform环境的童鞋们。也许我们用WPF的帅哥靓姐们会抱怨了,那我们呢?好,别急,下面我们就建立一个在WPF下运行的Mogre项目。

在建立WPF之前,我们先看一下在Winform下是怎么实现的。打开源码,我们可以看到里面有一个自己的实现类OgreWindow ,而在OgreWindow的构造函数中有两个参数,一个是位置(Point类型),别外一个是显示面板的句柄。在这里,它是用Panel来作为承载窗器,调用Panel的Handle属性获得句柄,引用对象,即可实现;还有一个注意的是,它在Winform的Paint(重绘事件)中调用类的Paint。这样子,一个Mogre即在Winform上显示了。

看了Winform的代码后,下面我们开始建立个WPF。

1.建立WPF程序,然后在引用 WindowsFormsIntegration和System.Windows.Forms。

2. 在WPF的xaml的顶级节点加上下面代码

   xmlns:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"

         xmlns:wf ="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" 

然后在页面写入下面代码,建立Panel

 

 

< wfi:WindowsFormsHost >
             < wf:Panel  x:Name ="myPanel"    Width ="1024"  Height ="768"   ></ wf:Panel >
</ wfi:WindowsFormsHost >

  

3.把Winform示例中的OgreWindow 类复制过来。

4.因为在WPF中没有Panit(重绘事件),所以在这里我们用CompositionTarget 来代替。直接用CompositionTarget

的Rendering 事件来输出,所以在事件中写上mogreWin.Paint()就可以了。这样,Mogre就在WPF中显示了。

结语:WPF中显示Mogre中,最主要要解决的是Panel的实现与Panit中的重绘。因为WPF中没有Panel,所以要借助Winfrom的控件;因为WPF中没有重绘事件,所以要用CompositionTarget 来代替;

  

 

转载于:https://www.cnblogs.com/easonechan/archive/2011/11/24/2261296.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值