本文记录下创立自定义管制时碰到的一个小问题。
问题
在 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)]