[XAML] 数字で始まるフォルダを作成して埋め込まれたリソースをいれるとパスがかわる

ちょっとハマってしまったのでメモ。

ソリューションのフォルダ構成で「XXXX/YYYY/000_ZZZZ」みたいなフォルダを作り、「000_ZZZZ」フォルダの中にリソース(XAMLとかmp3とか)を入れていました。リソースは「埋め込まれたリソース」として登録し、実行時に動的に読み込むようにしました。

この場合は「Assembly.GetManifestResourceStream」メソッドで読み込むことになるのですが、パス指定では以下の注意点が挙げられます。

  • パス区切り文字は「. (ピリオド)」になる
  • パスの最初に「名前空間」をいれ、ピリオドを挟んだ後プロジェクトのルートからの相対パスを書く
  • 大文字小文字は区別される

一応これらを注意して書いたのですが、実行時にどうしても null が返ってきてしまいます。

どうしてもわからなかったので「Assembly.GetManifestResourceNames()」メソッドで中身を調べてみたところフォルダのパスが「XXXX.YYYY._000_ZZZZ」のようになっていて数字から始まっているフォルダ名の最初に「_ (アンダースコア)」が追加されていました。とりあえず読込パスを同じようにアンダースコアを入れてみたところ正常に読む込むことができました。

ハマりそうなので注意が必要ですね。

]]>

[ちーたんタッチボード] XAML ファイルからボードコンテナ定義ファイルの作成方法

ブログのコメントでどうやって作るのかというコメントがありましたのでサイトの Q&A のページに記載しました。機能概要のページには XAML ファイルからボードコンテナ定義ファイルを作れますと書いてたんですが、まだ仮実装の段階だったので作り方とかの記載を後回しにしていました。

XAML ファイルの定義もまだ決まっていないので今回は定義を書かずにサンプルファイルだけ公開する形にしました。定義のほうは今後のバージョンで決めていきたいと思います。

また、仮実装であるため、完全なボードコンテナ定義ファイルを作ることはできません。作れるのはボードのサイズ、キーの位置、サイズ、テキストなどでそのほか細かなパラメータは直接 .setting ファイルを編集する必要があります。また、.setting ファイルを新規に作成する機能だけですので、既存の .setting ファイルに対して修正をすることはできません。

作り方は以下の Q&A のページに記載しています。

XAML のサンプルファイルはダウンロードページからダウンロードできます。

]]>