【WPF】(16 進数値 0x0C) は無効な文字です。 行 1、位置 1。

WPF で ResourceDictionary (XML) をロードしようとしたら下記のようなエラーが出た。

System.Windows.Markup.XamlParseException

(16 進数値 0x0C) は無効な文字です。 行 1、位置 1。

0x0C は FF、つまり「改頁」の制御記号を示している。

変だな。該当のリソースディクショナリを調べてみても、1 行目の 1 文字目に改頁の制御記号なんて無いですよ。。。?

ロードしようとした対象のファイルはこのリソースディクショナリ。

あれこれ調べてみたら、どうやら、ビルドアクションが「Page」になっていたのがエラーの理由らしい。

下図のように「Resource」にしたらエラーが消えた。

MEMO

ちなみに、ビルドアクションを「埋め込みリソース」(Embedded Resource) にしてもエラーは消えるが、「埋め込みリソース」は WPF 以前のものであり、WPF では「Resource」 が基本とのこと。

「Resource」の場合、ビルド後に obj フォルダ内の ApplicationName.g.resources に格納されるらしい。

(参考)http://www.kanazawa-net.ne.jp/~pmansato/wpf/wpf_resource.htm

コメントの投稿

avatar
  購読する  
通知を受け取る対象