2010-07-16 56 views
4

我有從設備收到的原始二進制數據。我希望顯示像HEX編輯器那樣的數據 - 顯示十六進制值,但也顯示相應的字符。在WPF控件中顯示特殊(不可打印)字符

我發現字符有ASCII碼0 - 32的字符,但我無法讓它們顯示在屏幕上。

我試着用WPF列表框,項目控件和文本框。

有一些設置可以使這項工作?
或者也許一些WPF控件會顯示這個字符?

編輯:
經過一些思考和測試,只有使問題字符是換行,換頁,回車,退格,水平和垂直選項卡。作爲快速解決方案,我決定用ASCII 16(10HEX)字符替換這些字符。我用ASCII,UTF-8和Unicode文件測試了它,它可以與這三種格式一起使用。

這裏是正則表達式,我使用這個:

rawLine = Regex.Replace(inputLine, "[\t\n\r\f\b\v]", '\x0010'.ToString()); 

它取代的這6點問題的字符所有出現的一些跡象四四方方。它表明,這不是「常規打印」字符,它適用於我。

+3

我意識到這是一個非常古老的帖子,但是無論如何:你發現哪些字體包含非打印控制代碼的圖形?我正在開發一個應用程序,我需要向用戶顯示這些隱藏的字符(很像記事本++的視圖 - >顯示符號 - >顯示所有字符)。更特別的是,我需要在串行數據流中常見的NULL,STX,ETX,ENQ等字符的圖形表示。 – 2014-12-13 01:55:25

+0

我不太確定,但我認爲這是新快遞。或者也許是Consolas。但絕對不是比例字體。 對不起,我無法檢查,因爲我無法再訪問該項目。 – zendar 2014-12-15 11:45:53

回答

2

不知道這是否令人興奮,你想要什麼,但我會建議你看看#develop項目。他們的編輯器可以顯示空格,製表符和行尾標記。

我有一個快速瀏覽源代碼和命名空間ICSharpCode.AvalonEdit.RenderingSingleCharacterElementGenerator類,似乎做你想做的。

+0

謝謝,我會檢查一下 – zendar 2011-02-13 02:01:25