Winforms中的翻转/滑动效果

3

我正在尝试在Winforms中实现翻转/滑动效果。

确切地说:第一个窗体向屏幕外侧滑出,第二个窗体向内滑入的效果。

经过大量研究,我得出结论:在Winforms中,无法实现翻转效果。

我尝试了以下方案来实现滑动效果:

  1. 在Wpf应用程序中嵌入winforms - 使用Windowsformshost --> Windowsformshost不支持动画效果。

  2. 改变窗体位置 a. 使用计时器 b. 循环 c. 单独的线程

    --> 窗体闪烁,不够专业

  3. 屏幕捕捉 - 即窗体截图

    --> 同样的问题:闪烁

  4. AnimateWindow函数(API)

    --> API不支持线程 --> 不可能同时将两个窗体一起滑入和滑出。 --> 同样的问题:闪烁

附加信息:

我使用C#,Visual Studio 2010(.Net Framework 4.0) 第三方控件 - Telerik 我的窗体上有自定义控件(扩展的Telerik控件) 我已将双缓冲设置为控件的True。

如果有人可以帮助/建议克服这个问题(Winforms翻转/滑动效果),那将非常有帮助。

敬礼,WickedSquall


谢谢回复。需求有些变化:滑动必须在表单中进行。这相对容易,只需更改控件的左侧值即可。除此之外,我尝试在Winform中插入一个自定义的WPF控件,使用动画移动2个屏幕截图。我会更新您。 - Wickedsquall
2个回答

4

最好的选择是:

5. 切换到WPF。它运行在DirectX上,你需要这个。

但我猜那不是一个选项。看起来最可行的是你的3号选项,移动位图。闪烁问题应该可以通过双缓冲等方法解决。


0

这是我们的最终解决方案:

我们决定将此问题提交给具有更多图形经验的第三方。

根据我们的知识,最佳解决方案是使用屏幕截图和计时器移动Picturebox。

敬礼


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接