我知道有很多关于隐藏或删除WPF窗口左上角图标的问题,这是系统菜单所在的位置.我尝试了很多但没有效果.这是我的要求:
可用的答案基本上使用Windows API函数GetWindowLong,SetWindowLong有时还SetWindowPos添加扩展窗口样式WS_EX_DLGMODALFRAME和调用SWP_FRAMECHANGED.有时,其他样式也会设置或取消设置.
不幸的是,这根本不起作用.我可以没有没有关闭按钮的图标,或者两者都在那里.但同样值得注意的是,所有这些内容都来自2010年或预告片.它似乎是针对早期的.NET或Windows版本而失败了.
我已经将系统对话框(来自资源管理器)和我的WPF窗口的窗口样式与Microsoft Spy ++(包含在Visual Studio中)进行了比较.但我可以尝试将所有标志设置为相同,图标不会消失.就像黑魔法一样,它会推翻所有其他API函数或物理.
有没有人能够在今天和指定环境中使用仍然有效的解决方案?
我正在尝试(在WPF中):
我在这里尝试了解决方案: 从WPF窗口中删除Icon
这很有效.在http://blogs.msdn.com/b/wpfsdk/archive/2007/08/02/a-wpf-window-without-an-window-icon-the-thing-有一个可下载的相同内容的样本: 你点击到得最系统menu.aspx
但是,如果我将.ico文件添加到.exe的项目属性(属性 - >应用程序 - >图标和清单),它将停止工作.您可以使用可下载的示例尝试此操作.
似乎.exe中的图标也用在模式窗口中(我们在.dll文件中也有),即使该.dll的属性显示为"默认图标".它必须从.exe传递下来.那么,有没有办法在主窗口上显示图标,而不是在子窗口上?
可能更简单的方法是:即使项目的属性中指定了.ico文件,是否可以删除图标?
我发现唯一能工作的是将模态窗口的WindowStye设置为"ToolWindow".这给了我几乎我想要的东西:没有图标和"关闭"按钮(右上角的"x")仍然存在.然而,x是超小的.这是最好的吗?
谢谢你的帮助.