2015-10-19 184 views
1

我有一個字段,其中包含一個十進制的百分比值。WPF XAML StringFormat。轉義%

文本塊綁定到此字段,我想用%符號顯示它。

例如: 如果MyField的= 5.0然後文本應當被顯示爲 「5.00%」

這是我的結合:

Text="{Binding Path=myfield, StringFormat=0.00## \%}" 

目前顯示 「500.00%」

的'\'似乎不是在逃避'%'。

如何在XAML StringFormat中轉義'%'?

+0

我能想到的唯一的事情是,有反斜線和'%'之間的另一個零寬度字符(但不太可能出現)。 – ChrisF

回答

1

看來我們需要斜線一倍內逃脫%,我認爲\本身需要進行轉義幫助XAML編譯器明白,這是一個\之前它被用%相結合,做出一個%完美越獄將由StringFormat(不XAML編譯器)被理解爲文字字符串%

Text="{Binding Path=myfield, StringFormat=0.00## \\%}" 

因此技術上我們在這裏有兩個解釋器,一個由XAML編譯器和一個由StringFormat引擎組成。請注意,\也用於轉義XAML中的某些特殊字符,例如{}

通過顯式指定的參數指標,你可以這樣做:

Text="{Binding Path=myfield, StringFormat=\{0:0.00## \\%\}}" 
0

您可以用引號嘗試它,而不是:

Text="{Binding Path=myfield, StringFormat=0.00## '%'}" 
+1

這不會甚至編譯我害怕。 – apc

0

找到了答案,以我的問題,但它不完全地回答我的問題:

Text="{Binding Path=myfield, StringFormat={}{0:0.00##} %}" 

這表示它的參數指標0格式「0.00 ##」然後附加「%」。

雖然這會給出理想的結果它沒有解釋如何爲參數字符串格式0