【问题标题】:C# Ghost Outline Form ResizeC# Ghost 大纲窗体调整大小
【发布时间】:2015-01-01 19:39:59
【问题描述】:

通常情况下,我的 C# 应用程序会在窗体本身调整大小的同时动态调整大小的整个窗口内容。

我清楚地记得一些应用程序做了这个非常好的效果,而不是这样做,它只会在调整大小时显示一个幽灵般的边框,然后重绘窗口。

如何在我的表单中获得这种可爱的效果?我在 Google 上找不到任何与此相关的内容。

【问题讨论】:

  • 那不是在旧的 Windows 平台上吗?
  • 是的,我认为这是旧版 Windows 的 Windows 功能。我认为,你必须做很多自定义图形工作才能获得这种行为。
  • 同意...这是一个操作系统设置(但在 Win 7/8 中仍然可用)。关闭Show Window Contents While Dragging 选项。
  • @Idle_Mind:只是想知道 - 这是否意味着您只能在所有程序中实现它,或者有什么方法可以让它只在您自己的程序中发生?
  • 我认为你不能只为你的程序做这件事。也许您可以在您的表单开始调整大小时进行陷阱,切换该设置,然后再将其切换回来。请参阅 ResizeBeginResizeEnd。还没试过,不知道能不能用。

标签: c# winforms


【解决方案1】:

PInvoke SystemParametersInfo 更改它,但它会更改所有窗口。

这里是所有命令的参考:MSDN SystemParametersInfo

[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern int SystemParametersInfo(int uAction, int uParam, int lpvParam, int fuWinIni);

[STAThread]
static void Main() {
    int SPI_SETDRAGFULLWINDOWS = 0x0025;
    SystemParametersInfo(SPI_SETDRAGFULLWINDOWS,0,0,2);
    Application.Run(new Form());
}

【讨论】:

  • 你怎么把它转回来?
  • SystemParametersInfo(SPI_SETDRAGFULLWINDOWS,1,0,2);
猜你喜欢
  • 1970-01-01
  • 2012-05-17
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-30
  • 1970-01-01
  • 2013-08-01
相关资源
最近更新 更多