1

我在 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 值的所有特殊字符。

加载字典后还有其他方法可以动态显示字符吗?也许使用正则表达式并在资源字典上查找和替换?

4

0 回答 0