我需要在代碼中的字符串中顯示TextBlock中的特殊字符。設置帶有特殊字符的文本
<TextBlock x:Name="tboxData" TextWrapping="Wrap" Text=">> <<" />
工作,但我需要從C#做到這一點:
tboxData.Text = ">> <<";
這不TextBlock的打印>> < <。
我該怎麼辦?
我需要在代碼中的字符串中顯示TextBlock中的特殊字符。設置帶有特殊字符的文本
<TextBlock x:Name="tboxData" TextWrapping="Wrap" Text=">> <<" />
工作,但我需要從C#做到這一點:
tboxData.Text = ">> <<";
這不TextBlock的打印>> < <。
我該怎麼辦?
假設你可能需要使用編碼字符出於某種原因(也許你不使用文字和XML文件或東西正在讀):
tboxData.Text = System.Web.HttpUtility.HtmlDecode(">> <<")
請注意,您必須添加一個參考System.Web
組件。
只需使用:
tboxData.Text = ">><<";
你不必寫在C#中的字符串時,擔心HTML實體。它必須在XAML中完成,因爲這些字符表示代碼的開始和結束標記。
大字符串(不僅是那四個字符)正在從Web服務接收,所以我不能手動設置文本。它只是爲了更好的可視化。我從另一個答案使用System.Net.WebUtility.HtmlDecode,它有所幫助。謝謝。 –
不應該這樣工作嗎?
tboxData.Text = ">><<";
的XAML要求您使用的編碼的原因是因爲XAML解析<
和>
字符,所以你需要確保解析器知道你想顯示<>
字符,而不是解析它們作爲標記。
你打敗了我! – codingbiz
這是不可能的,因爲我從Web服務接收字符串,並且它已經包含這些字符。 –
用於用例,但如果您的目標是.NET 4(客戶端或完整版),則可以使用[System.Net.WebUtility.HtmlDecode](http://msdn.microsoft.com/en-us/library /ee388354.aspx),而不是爲了避免在不需要'System.Web'來引用'System.Web'程序集。 – keyboardP
謝謝!我針對.NET 4. System.Net.WebUtility.HtmlDecode工作得很好。這就是我需要的。 –