【发布时间】:2013-08-09 01:29:08
【问题描述】:
我正在用 C# 编写一个“多屏幕”应用程序。 “屏幕”代表程序的不同区域,即设置、受限访问、管理等。
我遇到的问题是当我在一个面板和另一个面板之间转换时。在过渡过程中,整个表格会瞬间出现故障,并且可以看到一些控件的轮廓。面板上的任何文本都显示为与另一个面板的背景一起出现的块,并且会发生其他奇怪的事情。
这是我试图解释的一些屏幕截图......
这是我要过渡到的面板应该如下所示:
以下是过渡过程中发生的情况:
我有一个用于在面板之间转换的功能。代码如下:
delegate void DtransPanel(object pan1, object pan2);
private void transPanel(object hide, object show)
{
if (InvokeRequired) Invoke(new DtransPanel(transPanel), new object[] { hide, show });
else
{
Panel h = (Panel)hide;
Panel s = (Panel)show;
h.Hide();
Application.DoEvents();
s.Show();
}
}
在图形等方面,我完全是新手。可能有比使用上面的函数更好的方法:P
如果我没有找到类似的问题(我确实搜索过)或者如果我犯了这个星球上最愚蠢的错误,我深表歉意......
【问题讨论】:
-
我强烈推荐 WPF 而不是 winforms 几乎任何东西。由于基于 DirectX 的硬件加速,您不会遇到这些问题。顺便说一句,您可以使用WPF Bag of Tricks,其中包括
TransitionPresenter,它支持数十种不同的动画过渡。 here 是这些转换的一些示例。 -
有时我从不同的线程调用,但主要来自主应用程序线程
标签: c# winforms transition panels