WPF -- Generic.xaml文件报错

Posted louzi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF -- Generic.xaml文件报错相关的知识,希望对你有一定的参考价值。

本文记录下创建自定义控制时碰到的一个小问题。

问题

在Generic.xaml文件中写好自定义控件的DefaultStyle后进行编译,VS报错。

把报错位置的内容全部注释掉后,重新编译,依然报错。

查看错误信息:“给定编码中的字符无效...”,找到错误定位的位置后,发现此处有中文。使用编辑器打开Generic.xaml文件,查看编码格式,原来默认生成的文件编码格式是ANSI。

解决办法

原因清楚后就很好解决了,使用编辑器将文件格式转换为UTF-8即可,重新编辑成功。

Generic.xaml资源文件

在WPF项目中,首次创建自定义控件,VS会默认生成一个Themes文件夹,并在其中创建一个Generic.xaml文件,该文件用来存放当前程序集中自定义控件的默认样式,WPF框架会找到它并使用其中的自定义控件的默认样式。

程序集的AssemblyInfo.cs指定了资源文件的位置,ResourceDictionaryLocation.None表示不指定系统风格的主题,这样在不同的系统下控件风格是一致的。ResourceDictionaryLocation.SourceAssembly表示资源文件在程序集内,WPF会找到Themes文件夹下的Generic.xaml文件,将其中自定义控件的默认风格应用到对应的控件上。

[assembly: System.Windows.ThemeInfo(System.Windows.ResourceDictionaryLocation.None,
    System.Windows.ResourceDictionaryLocation.SourceAssembly)]

以上是关于WPF -- Generic.xaml文件报错的主要内容,如果未能解决你的问题,请参考以下文章

WPF中的Generic.xaml, theme以及custom control

WPF中的Pack URI

应用程序无法在 Generic.xaml 中找到资源

WPF中的Pack URI

在 WPF 用户控件库中使用 MaterialDesignInXamlToolkit

WPF Uri