我想知道什么,找不到任何相关主题。我有以下约束力:
Content="{x:Static resx:Resource.Form_OtherOption_Description}"
这会在标签中放置一个字符串。我问自己的是,如果我可以在绑定之后添加“:”,而不是在代码中,只需在xaml中添加。标签代表“名称:”。但是添加“:”作为绑定的一部分不是一种选择。
修改
我正在使用3.5版本
任何建议。
提前致谢。
答案 0 :(得分:30)
您可以通过以下方式完成此任务:
<TextBlock Text="{Binding Source={x:Static resx:Resource.Form_OtherOption_Description},
StringFormat={}{0}:}" />
编辑: <Label>
s Content
属性显然不尊重绑定的StringFormat
属性。我发现的内容已移至ContentStringFormat
上的<Label>
媒体资源。
<Label Content="{x:Static resx:Resource.Form_OtherOption_Description}"
ContentStringFormat="{}{0}:" />
答案 1 :(得分:19)
如果你使用的是WPF 4.0,你也可以这样做:
<TextBlock>
<Run Text="{Binding SomeLabel}"/>
<Run Text=":"/>
</TextBlock>
这实际上连接来自两个Run
标记的两个字符串并复制到TextBlock.Text
属性中!。
使用此方法,您甚至可以绑定到演示者中的不同属性,并将其显示在单个TexBlock
中。看到这个很好的例子:
答案 2 :(得分:10)
您也可以将MultiBinding与StringFormat一起使用,例如:
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="ID {0} Name: {1} Age: {2}">
<Binding Source="{x:Static resx:SomeResx.ID}"/>
<Binding Path="Name"/>
<Binding Path="Age"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
您可以在内容控件TextBlock TextBlock.Text中使用它(抱歉,我无法获取上面显示的代码)
答案 3 :(得分:3)
尝试Binding的属性StringFormat - 它可以非常简单地完成你想要的任务。
答案 4 :(得分:3)
是的,你可以。在这里,我在windows phone中绑定文本(clouds.all)后添加“testing”。
<TextBlock Text="{Binding Path=clouds.all, StringFormat=\{0\}testing}"/>
答案 5 :(得分:2)
如果您在进度条中使用标签,则可以使用以下方式:
<Label x:Name="Progress" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontWeight="Bold" Foreground="White" Opacity=".7"
Content="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}" ContentStringFormat="{}{0}%">
通过这种方式,您可以通过添加%来可视化进度条的值。
答案 6 :(得分:0)
您可以创建一个转换器,它接受输入字符串并添加“:”。
public class AddStringToStringConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string input = value as string;
string suffix = parameter as string;
return input + suffix;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
的Xaml:
<Window.Resources>
<local:AddStringToStringConverter x:Key="AddStringToStringConverter"/>
</Window.Resources>
...
<Label Text="{Binding Source={x:Static resx:Resource.Form_OtherOption_Description}, Converter={StaticResource AddStringToStringConverter}, ConverterParameter=:}"/>
或类似的东西。试过它,它至少对我的来源起作用了。
如果你ConverterParameter
中有空格等,你可以使用单引号来确保它不被处理。
编辑:哦,是的......是的......还有StringFormat
我以前从未需要的,是的......