【发布时间】:2015-05-29 17:32:08
【问题描述】:
在我的资源文件中
LOCKER NO. {0} IS OPEN
我需要将资源文件绑定到一个文本框,并希望在前景为红色的 palce holder 中动态设置值。
下面是我的代码
<TextBlock x:Name="Title" Margin="0,70,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Top"
FontSize="42"
FontWeight="SemiBold"
Foreground="#888888"
>
<TextBlock.Text>
<MultiBinding StringFormat="{x:Static prop:Resources.LockerNumberIsOpen}">
<Binding Path="PrefixWithNumber"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
如何将 {0} 中的值显示为红色?
从后面的代码我们可以做到
Title.Text = string.Format(Properties.Resources.LockerNumberIsOpen, (this.DataContext as OpenParcelViewModel).PrefixWithNumber);
var tr = this.Find((this.DataContext as OpenParcelViewModel).PrefixWithNumber);
tr.ApplyPropertyValue(TextElement.ForegroundProperty, "#9ebb2b");
private TextRange Find(string w)
{
var si = Title.Text.IndexOf(w);
var sp = Title.ContentStart.GetPositionAtOffset(si + 1);
var ep = Title.ContentStart.GetPositionAtOffset(si + w.Length + 1);
return new TextRange(sp, ep);
}
如何在 XAML 中做到这一点
【问题讨论】: