更新并保存XML文件,将其内容更改为UWP中无法识别的字符

问题描述 投票:0回答:1

我想更新UWP样式文件夹中的“ StanderdStyles.xaml”。当我打开并保存文件的内容时,它将变为无法识别的字符。

组织文档:

<!--  Non-brush values that vary across themes  -->

<ResourceDictionary.ThemeDictionaries>
    <ResourceDictionary x:Key="Default">
        <x:String x:Key="BackButtonGlyph">&#xE071;</x:String>
        <x:String x:Key="BackButtonSnappedGlyph">&#xE0BA;</x:String>

更新的xml:

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <!--  Non-brush values that vary across themes  -->
  <ResourceDictionary.ThemeDictionaries>
    <ResourceDictionary x:Key="Default">
      <x:String x:Key="BackButtonGlyph"></x:String>
      <x:String x:Key="BackButtonSnappedGlyph"></x:String>
      <!--  Removes the background transparency of textboxes  -->
      <x:Double x:Key="TextControlThemeMinHeight">32</x:Double>
      <x:Double x:Key="TextControlThemeMinWidth">64</x:Double>
      <x:Double x:Key="TextControlBackgroundRestOpacity">1</x:Double>

我用于更新的代码如下:

XmlDocument doc1 = new XmlDocument();
doc1.Load(rmModel.SourceCodePath + "\\Assets\\Styles\\StandardStyles.xaml");
var documentElement = doc1.DocumentElement.ChildNodes[1];
var defTheme = documentElement.ChildNodes[0];
var styles = defTheme.ChildNodes;

foreach (XmlNode item in styles)
{
  if (item.Attributes == null) continue;
  XmlAttribute idAttribute = item.Attributes["x:Key"];
  if (idAttribute != null && idAttribute.Value.Equals("FgBlue1_"))
  {
    item.InnerText = TextBoxColorCode.Text.Trim();
  }
}
doc1.Save(rmModel.SourceCodePath + "\\Assets\\Styles\\StandardStyles.xaml");
xml uwp xml-parsing windows-10-universal uwp-xaml
1个回答
0
投票

在Visual Studio的文本编辑器中,文本的显示取决于字体。

正如从您提供的示例中所看到的,添加的文本不在编辑器使用的字体支持之内。

例如,您的文本编辑器字体为Arial,但Glyph的字体为Segoe MDL2 Assets。由于Glyph的相应字符的Unicode不在Arial支持的范围内,因此无法进行解析。

这很正常,如果您需要显示文本,请更改您的编辑器字体。

最诚挚的问候。

© www.soinside.com 2019 - 2024. All rights reserved.