在VS2015中创建WPF应用程序。将窗口的标题设置为长度为 290 的字符串。
Title = "123456789 223456789 323456789 423456789 523456789 623456789 723456789 823456789 923456789 133456789 233456789 333456789 433456789 533456789 633456789 733456789 833456789 933456789 143456789 243456789 343456789 443456789 543456789 643456789 743456789 843456789 943456789 153456789 253456789 ";
当应用程序运行时,标题将被截断为 255 个字符(最大化窗口和跨 2 个屏幕扩展的窗口)。
- 如何增加显示的字符数?
- WPF 窗口标题允许的最大长度是多少?
I tried
- 如何设置WPF窗口的宽度等于其标题栏中的内容? https://stackoverflow.com/questions/29839479/how-to-set-wpf-windows-width-equal-to-the-content-in-its-title-bar
- 在代码和 XAML 中设置标题栏文本。
看来 255 个字符是内部限制DefWindowProc()
原生窗口函数。
WPF 通过调用本机方法来更改窗口的标题:
UnsafeNativeMethods.SetWindowText(new HandleRef(this, CriticalHandle), title);
此方法接受任意长度的字符串,因此实际上应该有效。这不是 WPF 问题。
But...
即使您创建一个使用DefWindowProc()
函数时,您将观察到相同的行为 - 窗口标题中最多 255 个字符。
Windows 绘制标题栏以响应WM_NCPAINT
消息(以及窗口框架、系统按钮等)。在 - 的里面DefWindowProc()
处理的代码WM_NCPAINT
消息,代码调用GetWindowText()
获取窗口的标题字符串。在这次通话中GetWindowText()
,缓冲区的大小似乎是255chars(在旧的 Windows 中,缓冲区只有 79bytes)。这将窗口标题的长度限制为 255 个字符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)