2016-11-11 24 views
4

在VS2015中創建了WPF應用程序。設置該窗口的標題,以長度290如何使WPF窗口標題的文本長度大於255個字符?

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個屏幕延長)。

Stretched Window

  1. 如何提高顯示的字符數?
  2. 什麼是WPF窗口標題的最大允許長度?

我試圖

+0

好問題。但是,你爲什麼要這樣做?看起來你想通過窗口標題做一些國際過程通信... – Mat

+0

在應用程序中標題顯示,名稱+姓氏+參考號碼+電話號碼。當姓氏很長時,電話號碼被截斷。用戶希望看到電話號碼。 – robor78

+0

255/4 = 63客戶的名字是什麼? – Mat

回答

3

看來255個字符是DefWindowProc()原生窗口函數的內部限制。

使用WPF調用本地方法改變窗口的標題:

UnsafeNativeMethods.SetWindowText(new HandleRef(this, CriticalHandle), title); 

這個方法接受任何長度的字符串,所以應該實際工作。這不是一個WPF問題。

但是......

即使你創建標準和本機Win32窗口,使用DefWindowProc()功能,你會看到相同的行爲 - 最多255個字符的窗口標題。

Windows響應WM_NCPAINT消息(連同窗口框架,系統按鈕等)繪製標題欄。在處理WM_NCPAINT消息的DefWindowProc()代碼中,代碼調用GetWindowText()來獲取窗口的標題字符串。在此調用GetWindowText(),緩衝區的大小似乎是255 字符(在舊的Windows中,緩衝區只有79 字節)。這將窗口標題的長度限制爲255個字符。

相關問題