动态值,如 ResourceDictionary 中的数字
Dynamic values like digit at ResourceDictionary
例如我有这样的东西
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<sys:String x:Key="USERNAME_AUTH_CONTENT">User auth success</sys:String>
</ResourceDictionary>
在后面的代码中,有时,我使用这个
var text = findRes("USERNAME_AUTH_CONTENT");
是否可以像这样制作smth:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<sys:String x:Key="USERNAME_AUTH_CONTENT">User %username auth success</sys:String>
</ResourceDictionary>
并在代码隐藏处
var text = findRes("USERNAME_AUTH_CONTENT", "here is i want to paste username");
最后我想看这个:'User AwesomeUserName auth success'
在 C++ 中,我可以使用 %d 作为字符串。 C# 和资源呢?
C# 使用 {0}
、{1}
等占位符来格式化字符串。
用占位符声明xaml资源
<system:String x:Key="USERNAME_AUTH_CONTENT">User {0} auth success</system:String>
并使用 String.Format
应用格式:
var text = FindResource("USERNAME_AUTH_CONTENT") as string;
if (text != null)
{
text = String.Format(text, "AwesomeUserName");
}
另请注意,您可以直接使用来自 xaml 的格式字符串:
<TextBlock Text="{Binding Source='AwesomeUserName', StringFormat={StaticResource USERNAME_AUTH_CONTENT}}"/>
(Source='AwesomeUserName'
只是一个例子,如果你有视图模型,那么使用Binding Path=SomeProperty
)
例如我有这样的东西
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<sys:String x:Key="USERNAME_AUTH_CONTENT">User auth success</sys:String>
</ResourceDictionary>
在后面的代码中,有时,我使用这个
var text = findRes("USERNAME_AUTH_CONTENT");
是否可以像这样制作smth:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<sys:String x:Key="USERNAME_AUTH_CONTENT">User %username auth success</sys:String>
</ResourceDictionary>
并在代码隐藏处
var text = findRes("USERNAME_AUTH_CONTENT", "here is i want to paste username");
最后我想看这个:'User AwesomeUserName auth success'
在 C++ 中,我可以使用 %d 作为字符串。 C# 和资源呢?
C# 使用 {0}
、{1}
等占位符来格式化字符串。
用占位符声明xaml资源
<system:String x:Key="USERNAME_AUTH_CONTENT">User {0} auth success</system:String>
并使用 String.Format
应用格式:
var text = FindResource("USERNAME_AUTH_CONTENT") as string;
if (text != null)
{
text = String.Format(text, "AwesomeUserName");
}
另请注意,您可以直接使用来自 xaml 的格式字符串:
<TextBlock Text="{Binding Source='AwesomeUserName', StringFormat={StaticResource USERNAME_AUTH_CONTENT}}"/>
(Source='AwesomeUserName'
只是一个例子,如果你有视图模型,那么使用Binding Path=SomeProperty
)