我想補充文本綁定到文本塊中的結果:將文本添加到綁定的TextBlock
<TextBlock Text="{Binding Title}" Foreground="#FFC8AB14" FontSize="28" />
所顯示的文字是:
" My title "
我想要什麼顯示的是:
This is "My title"
我想補充文本綁定到文本塊中的結果:將文本添加到綁定的TextBlock
<TextBlock Text="{Binding Title}" Foreground="#FFC8AB14" FontSize="28" />
所顯示的文字是:
" My title "
我想要什麼顯示的是:
This is "My title"
您可以使用綁定的StringFormat
財產這個博客文章的更多信息:WPF String.Format in XAML with the StringFormat attribute。
你好你可以寫爲:
<TextBlock>
<TextBlock>This is </TextBlock>
<TextBlock Text="{Binding Title}"></TextBlock>
</TextBlock>
你可以用轉換器做到這一點。
<TextBlock Text="{Binding Title, ConverterParameter=This is, Converter={StaticResource TextPrefixConverter}}" Foreground="#FFC8AB14" FontSize="28" />
轉換器只會將界限值作爲ConverterParameter的前綴。
public class TextPrefixConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
String result = String.Empty;
if (parameter != null)
result = parameter.ToString();
if (value != null)
result += value.ToString();
return result;
}
...
}
空格和/或引號意圖成爲輸出的一部分並不明顯。如果是這樣,可以改變轉換器來修剪空間和/或向引用的字符串添加引號。
這樣做的另一種方法是:
<TextBlock Foreground="#FFC8AB14" FontSize="28" >
<Run Text="This is " />
<Run Text="{Binding Path=Title}" />
</TextBlock>
如果你想這樣做的綁定:
<TextBlock Foreground="#FFC8AB14" FontSize="28">
<TextBlock.Text>
<Binding Path="Title">
<Binding.StringFormat>
This is "{0}"
</Binding.StringFormat>
</Binding>
</TextBlock.Text>
</TextBlock>
逃脫報價所需元素語法。如果行情在那裏只是爲了紀念插入的文本,不應該出現在輸出中這是很當然的簡單:出
<TextBlock Text="{Binding Title, StringFormat=This is {0}}"></TextBlock>
檢查:
<TextBlock Text="{Binding Title, StringFormat={}This is {0}}" Foreground="#FFC8AB14" FontSize="28">
只是使用StringFormat進行格式化。
<TextBlock Text="{Binding Title,StringFormat='This is {0}'}" Foreground="#FFC8AB14" FontSize="28" />
這裏最好的辦法在性能方面,前面已經回答了,是用StringFormat
爲Binding
並將其分配到的TextBlock
的Text
財產。
但是如果性能是不是一個問題,和XAML的可讀性是首選,另一種方法是使用Run
內TextBlock
:
<TextBlock Foreground="#FFC8AB14" FontSize="28">
This is <Run Text="{Binding Title}" />
</TextBlock>
而且,這種方式可以應用不同的樣式(文本/背景顏色,斜體/粗體字體,字體大小等)到TextBlock
的不同部分,這是Binding
的StringFormat
所不能做到的。這種方法比具有不同文本/背景風格的多個TextBlock
更高效。
希望我已經說清楚了,而不是改變你的意圖。 –
@Jeff Mercado Cheers,已經有一段時間了。希望這將是一個快速解決方案。我希望在{}之前添加另一個「」,但我錯了。 – Rhys
所有爲了有更高質量的問題。 ;) –