本文記錄下創建自定義控制時碰到的一個小問題,
問題
在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)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/285424.html
標籤:WPF
