Wpf操作PPT,使用句柄把播放的PPT嵌入到窗体里,设置了窗口大小,但是全部覆盖掉了?求大神解答

99年的代码猿 2017-11-17 05:17:33
句柄引用代码如下

窗口大小也设置了



结果是无论使用注释掉的代码也好,都是覆盖掉所有控件,效果如下
窗体原型:

选择并播放后:


有没有什么方法可以让PPT在固定好的grid或其他控件里显示?
感谢各位大神!有想法的可以留言!谢谢各位。
...全文
1678 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_40337126 2021-01-21
  • 打赏
  • 举报
回复
通过MoveWindow函数是可以来设置子窗口大小的,但是还是有一点问题
qq_40337126 2021-01-21
  • 打赏
  • 举报
回复
if (objPrs == null)
return;
ObjPrs = objPrs;
//进入播放模式
var objSlides = objPrs.Slides;
var objSss = objPrs.SlideShowSettings;
objSss.LoopUntilStopped = MsoTriState.msoTrue;
objSss.StartingSlide = 1;
objSss.EndingSlide = objSlides.Count;
objSss.ShowType = ppt.PpSlideShowType.ppShowTypeKiosk;
var sw = objSss.Run();

OSlideShowView = objPrs.SlideShowWindow.View;
var wn = (IntPtr)sw.HWND;

try
{
//嵌入窗体
var fromVisual = (HwndSource)PresentationSource.FromVisual(Panel);
if (fromVisual == null)
{
return;
}
var parentHwnd = fromVisual.Handle;

Thread.Sleep(200);
SetParent(wn, parentHwnd);
Thread.Sleep(200);
bool result = MoveWindow(wn, 150, 0, 900, 700, true);
CrsCode 2019-05-07
  • 打赏
  • 举报
回复
每天看这些回答的 一个正经有用的没有
Dear200892 2018-01-09
  • 打赏
  • 举报
回复
 
//让窗体永远在窗体最前面
this.Topmost = true;
this.Activate();
99年的代码猿 2017-11-20
  • 打赏
  • 举报
回复
有没有大神有解决办法
99年的代码猿 2017-11-20
  • 打赏
  • 举报
回复
分数可以加分

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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