前にはまって解決してたけど、Blogにメモってなくて忘れてて悩んだのでメモメモ。
Windows ストア アプリでは、ユーザーコントロールを含むプロジェクトをビルドして出来たdllを配布するだけでは、他の人からユーザーコントロールが使えません。これが正しいアプローチなのかは謎なのですが、とりあえず動く方法を…。
こんな風に使う側のプロジェクトは構成する
ポイントは、コンパイルしてできたdllを参照するだけではなく、xamlをプロジェクトに追加してるところです。プロジェクト内では、ちゃんとアセンブリ名と名前空間を保った状態でフォルダを作って、そこにXAMLを置くように心がけます。
あとは、XAMLのビルドアクションをコンテンツとかにして常にコピーにすれば完成です。
まとめ
ユーザーコントロールを配布するのは大変そう。NuGet化するときは、xamlが上記のような構造で追加されるようにパッケージ化してしまいましょう。
カスタムコントロールではどうなのか要確認…。もっといいやり方知ってる人がいたらコメントまってます。