我想更新UWP样式文件夹中的“ StanderdStyles.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>
更新的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");
在Visual Studio的文本编辑器中,文本的显示取决于字体。
正如从您提供的示例中所看到的,添加的文本不在编辑器使用的字体支持之内。
例如,您的文本编辑器字体为Arial
,但Glyph的字体为Segoe MDL2 Assets
。由于Glyph的相应字符的Unicode不在Arial支持的范围内,因此无法进行解析。
这很正常,如果您需要显示文本,请更改您的编辑器字体。
最诚挚的问候。