none
C#で作成したアプリから動的にXamlファイルを読み込みたい RRS feed

  • 質問

  • ユーザが指定したXamlファイルを読み込み表示するにはどうしたら良いのでしょうか?

    やりたい事としては、
    1.ユーザがXamlファイルを指定する。
    2.指定されたXamlファイルを開く。
    3.コントロールのイベントをC#側で処理したい。
    をやりたいです。

    ユーザーが指定したXamlファイルは、Express Blendのデザインを使いユーザがwindowを作成します。(Xamlファイルのタグを直接修正は不可)
    C#側では、指定されたXamlファイルを読み込み、Xamlファイルに書かれているwindowを開きます。
    windowに表示されているコントロールのイベントが発生した場合、C#側で処理を作成しておきそちらで処理を行います。

    今のところ、XamlReaderで読み込んだファイルを(System.Windows.DependencyObject)XamlReader.Loadを行い、System.Windows.WindowのContentに突っ込む事で表示はできるのですが、Xamlファイルを手直し(Windowのままだとエラーが発生してしまうのでPanel系に置き換えるなど)を行わないといけなかったり、イベントをうまくつなげなかったりで困っています。

    WPFの知識がほとんどなく勉強しながらでかなり初歩的な質問と思いますが、宜しくお願いします。

    2009年6月24日 8:23

回答

すべての返信

  • このQAがいいと思います。
    XamlReader じゃ コードビハインドはサポートしないからイベントは自分ではりなおせと書いてあります。
    Xamlファイルのイベントは無視されるようです。

    http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/a53ff197-8703-4c6c-8726-45570304fb7b/
    えムナウ@わんくま同盟 Microsoft MVP Visual Studio C# Since 2005/01-2009/12
    • 回答としてマーク sk7474 2009年7月27日 8:52
    2009年6月25日 16:27
  • こんにちは。中川俊輔です。

    えムナウさん、回答ありがとうございます。

    kingkazさん、フォーラムのご利用ありがとうございます。
    その後いかがでしょうか?問題は解決しましたか?
    有用な情報と思われたため、えムナウさんの回答へ回答マークをつけさせていただきました。

    今後ともフォーラムをよろしくお願いします。
    それでは!
    マイクロソフト株式会社 フォーラム オペレータ 中川 俊輔
    2009年7月27日 8:55