rob*_*r78 5 c# windows wpf xaml
在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个屏幕的窗口)。
我试过了
255个字符似乎是本DefWindowProc()机窗口函数的内部限制。
WPF使用对本机方法的调用来更改Windows的标题:
UnsafeNativeMethods.SetWindowText(new HandleRef(this, CriticalHandle), title);
Run Code Online (Sandbox Code Playgroud)
此方法接受任何长度的字符串,因此应该可以正常工作。这不是WPF问题。
但...
即使创建使用该DefWindowProc()功能的标准本机Win32窗口,您也会观察到相同的行为-窗口标题中最多255个字符。
Windows根据WM_NCPAINT消息绘制标题栏(以及窗框,系统按钮等)。在DefWindowProc()处理WM_NCPAINT消息的代码内部,该代码调用GetWindowText()以获取窗口的标题字符串。在对的调用中GetWindowText(),缓冲区的大小似乎为255个字符(在旧的Windows中,缓冲区只有79 个字节)。这将窗口标题的长度限制为255个字符。
| 归档时间: |
|
| 查看次数: |
403 次 |
| 最近记录: |