1. 在WPF中Label的Content有時內容只需要改變個別數字,而不需要所以內容都修改,這時候就要使用StringFormat,
如: <Label Content="I have xxx friends"/> 這里面的xxx是個變量,那在Binding時應該怎樣寫呢

1 <Label Content="{Binding FirendNumber, StringFormat='I have {0} firends}"/> 2
當我們這樣寫的時候發現,編譯時會保存,后來經過分析,發現StringFormat只能對字符串進行操作,而Label的Content是Object類型的,
那怎么辦呢,是不是說Label不能使用StringFormat呢,Label 的 Content 確實不能直接使用 StringFormat,
但是可以使用 Label 的 ContentStringFormat 屬性來完成,例子如下:
<Label Content="{Binding FirendNumber} ContentStringFormat='I have {0} firends}"/>
當然你也可以嘗試使用控件嵌套的方式來實現,
代碼如下:在Label的Content中嵌套一個TextBlock

1 <Label> 2 <Label.Content> 3 <TextBlock Text="{Binding FirendNumber,StringFormat=I have {0} firends}"/> 4 </Label.Content> 5 6 </Label>
請注意一點,StringFormat格式是這樣寫的 StringFormat=I have {0} firends ,等號后面是直接加內容,而要動態切換的則使用{n}, n>0
2. 有時候我們需要在Label的Content前后加上一個空格,那應該怎樣寫呢,
StringFormat= I have {0} firends ,這樣嗎? 結果發現還是不行,
其實只需要在內容外加上單引號即可:StringFormat=' I have {0} firends '