日期:2014-05-17  浏览次数:20966 次

WinForm如何实现这种效果?


WinForm如何实现这种效果?



这是某软件右上角(设置、最小化、关闭)的截图,用WinForm如何实现这样的效果?点击图中的第一个按钮时,能够弹出下拉项?

------解决方案--------------------
正好很久以前下的例子,没想到还有,稍微改了一下,下载试一下就知道了
------解决方案--------------------
引用:
Quote: 引用:

只能自定义了,winform 实在没有多好的建议



是不是说软件用WinForm开发不太合适?

举个例子:
一个普通的按钮美化,winform 可能于要重写这个控件(里面大量的GID绘制,可能做出的效果不如WPF做一张按钮图片来的好),我不是说winform 不能实现,而是成本太高,而且很麻烦。

winform是和做一些和UI影响不大的项目...

既然现在LZ已经用了WINFFORM  只能上网找各种快类似这样的控件来弄了

codeproject上等等去查查,当然也不排除某些大牛闲的蛋疼专门做各种美化控件
------解决方案--------------------
你想要设计的界面不是标准的WinForm界面。

你的问题,本质是如何在标题栏添加按钮。
在XP及之前的操作系统,是可以的。比如:
http://www.csharpwin.com/csharpspace/10544r8802.shtml
在Windows7/8/8.1是不可以的。

因此,要基于Windows原生外观,实现在标题栏右侧区域添加按钮是不可行的。
但是,Windows7提供了全新的API,可以通过快速访问工具栏(Quick Access Toolbar)实现你要的功能。只不过,和标准Windows应用程序一样,这些扩展的按钮在控制菜单盒(图标)的右侧。

http://www.codeproject.com/Articles/32623/Vista-Aero-ToolStrip-on-Non-Client-Area



如果你要设计Windows原生外观应用程序,请用上面这个方案,将你的按钮用快速访问工具栏实现。

如果,你仍然希望构建你图示中的非标准界面,那么你可以:
1.使用非标准窗口
2.使用WPF
但是,对于专业软件,我还是建议您构建原生外观的程序。


------解决方案--------------------
设置下表单形式属性,然后自定义这个图片形式,重绘或设计图片放到表单上都可以,http://www.oschina.net/code/snippet_1015670_19435
------解决方案--------------------
引用:
这是我用C#做的效果,是这样效果吧。我网上上传有这个界面库的DEMO案例,你可以去下载使用,这样窗体就可以实现美化了,那个弹出的菜单是界面库中的SkinContextMenuStrip控件,在点击系统自定义按钮的时候会触发一个在窗体上我定义的自定义事件SysBottomClick。弹出菜单代码就在这里写。
效果图:

代码:

private void FrmMain_SysBottomClick(object sender, SysButtonEventArgs e) {
    if (e.SysButton.Name == "SysTool") {
        Point l = PointToScreen(e.SysButton.Location);
        l.Y += e.SysButton.Size.Height + 1;
        MenuState.Show(l);
    }
}


忘了放DEMO链接,补上:
[精仿]360安全卫士-10.30更新(CSkin Demo)
高仿QQ2013通讯DEMO-10.30更新