有没有什么办法让窗体在被移动时变成半透明,然后在不再移动时变为不透明?我试过Form_Move
事件,但没有运气。
我卡住了,有帮助吗?C# - 使窗体移动时半透明
回答
表单加载为半透明的原因是因为表单必须移动到触发Move事件的起始位置。您可以通过确定是否设置不透明度来确定表单是否已完全加载。
后一种形式已完成移动,所以这样的事情应该工作的ResizeEnd事件触发:
bool canMove = false;
private void Form1_Load(object sender, EventArgs e)
{
canMove = true;
}
private void Form1_Move(object sender, EventArgs e)
{
if (canMove)
{
this.Opacity = 0.5;
}
}
private void Form1_ResizeEnd(object sender, EventArgs e)
{
this.Opacity = 1;
}
好的!当用户完成移动表单时,我不知道ResizeEnd被触发。我注意到ResizeBegin在用户开始移动表单时触发,所以也许他可以使用这个而不是Form_Load/canMove/Form_Move技巧? – itowlson 2009-10-18 08:18:11
非常感谢!太棒了!我会更多地尝试它。顺便说一句,爱你的头像鲍尔;)。 – user 2009-10-18 08:19:49
使用Windows键将窗口移动到屏幕上某个Tile位置时,有人遇到问题吗? 例如,当我使用Windows + LeftKey时,表单保持不透明状态,直到我再次手动调整它的大小后,它才会重置为正常状态。 所以我做了什么来解决这个问题是采取@itowlson的建议,并使用Form1_ResizeBegin而不是Form1_Move。这似乎是诀窍。 – 2015-12-21 19:03:59
要做到这一点正确我希望你需要重写消息处理来响应标题栏被举行等,但你可以作弊,只是使用一个计时器,让你使它不透明的一个小而移动时,使连续动作作品:
[STAThread]
static void Main()
{
using (Form form = new Form())
using (Timer tmr = new Timer())
{
tmr.Interval = 500;
bool first = true;
tmr.Tick += delegate
{
tmr.Stop();
form.Opacity = 1;
};
form.Move += delegate
{
if (first) { first = false; return; }
tmr.Stop();
tmr.Start();
form.Opacity = 0.3;
};
Application.Run(form);
}
}
很明显,你可以调整这个以淡入/淡出,等等 - 这是只是为了显示整体概念。
- 1. C#WF半透明窗体
- 2. 半透明窗体形式
- 3. 使用VB6的半透明窗体
- 4. C#透明窗体
- 5. C#设计透明窗体
- 6. Visual Studio 2010 - 半透明浮动窗口
- 7. 如何使字体与Irrlicht半透明?
- 8. 半透明的PictureBox c#
- 9. OpenGL的透明/半透明
- 10. xlib半透明窗口背景
- 11. 半透明AppWidget?
- 12. 半透明NSView
- 13. C#2窗体和不透明问题
- 14. Windows窗体C中的透明度#
- 15. Windows窗体不透明后,显示C#
- 16. 使拖动图像不透明,而不是半透明
- 17. 在wxwidgets中绘制半透明窗口
- 18. 窗体的透明背景(Windows窗体)
- 19. 如何在Visual Basic中创建可移动的透明窗体?
- 20. 使用半透明UINavigationBars
- 21. 如何使JTextField半透明
- 22. 移动div时不透明度不当鼠标移动时的不透明度
- 23. 如何在Visual Basic窗体中创建半透明效果?
- 24. 模糊半透明窗体的背景(如Aero玻璃)
- 25. 如何创建Microsoft Office 2010 TP等半透明Windows窗体?
- 26. OpenGL半透明固体没有折射?
- 27. 半透明物体渲染顺序
- 28. 单击Visual C#窗体窗体的透明度?
- 29. 透明窗体背景HTML
- 30. 半透明光标
您在Form_Move事件改变了Form.Opacity房产吗? – gn22 2009-10-18 07:19:05
是的,但程序第一次运行时,它是半透明的。 – user 2009-10-18 07:27:38