我在 blend 4 中编写了一个 wpf 应用程序,但我遇到了特殊字符显示为菱形问号的问题。
文本在运行时来自资源字典。
有没有一种方法可以制作特殊字符,例如é,è,ê等。
我的按钮,例如
<Button Content="{DynamicResource 2190}"/>
我的资源字典
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:system="clr-namespace:System;assembly=mscorlib">
<system:String x:Key="2190">value</system:String>
值是默认值。在创建窗口对象的程序开始时,资源被删除并用 c# 代码中的新资源替换:
if (File.Exists(filepath))
{
ResourceDictionary rd = new ResourceDictionary();
string line = "";
StreamReader file = new StreamReader(filepath);
while ((line = file.ReadLine()) != null)
{
string[] parts = line.Split(new char[]{','},2);
string key = parts[0];
string value = parts[1];
rd.Add(key,value);
// use it
}
file.Close();
Application.Current.Resources.MergedDictionaries.Clear();
Application.Current.Resources.MergedDictionaries.Add(rd);
}
当我单击另一个按钮时,通过使用不同的文件路径调用该函数来加载一种新语言。
我宁愿不必浏览 txt 文件并更改其 ASCii 值的所有特殊字符。
加载字典后还有其他方法可以动态显示字符吗?也许使用正则表达式并在资源字典上查找和替换?