[英]Binding placeholder from resource file in WPF
在我的資源文件中
LOCKER NO. {0} IS OPEN
我需要將資源文件綁定到文本框,並想在前景為紅色的地方放置紙架中動態設置值。
下面顯示了我的代碼
<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中做到這一點
您需要使用richTextBox。 這將允許您為塊內的文本設置不同的顏色,但是我不知道如何綁定它。 也許使用一種方法來創建具有所需格式的資源的對象,然后將其綁定到該對象。
關於在RichtextBox中設置單獨的顏色, 此問題有詳細說明。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.