none
UserC RRS feed

  • 質問

  • WPF vs2010 FW4.0

    UserControlから生成したWpfWindowの削除

    1.MainWindow.xamlでUserControlを貼り付ける
    2.MainWindowのボタンでUserControlを表示する
    3.MainWindowの終了ボタンでMainWindowを閉じる。

            private void UserControl_Unloaded(object sender, RoutedEventArgs e) {
                if (_Window == null) _Window.Close();
            }
    のブレークポイントは実行されます。
    実行するとプログラムが終了しません。トレース状態のままになります。

    もしかしたらUserControlからのWpfWindowの生成は禁止事項ですか?


    n_meguro
    2011年9月30日 1:59

回答

すべての返信

  • > もしかしたらUserControlからのWpfWindowの生成は禁止事項ですか?

    そんなことはありません。しかし問題が判りにくいのですが

    > UserControlから生成したWpfWindowの削除

    とは、MainWindow に張り付けた UserControl から Window.Show メソッドで Window を表示しているということでしょうか?

     


    ひらぽん http://d.hatena.ne.jp/hilapon/
    2011年9月30日 2:24
    モデレータ
  •         private void UserControl_Unloaded(object sender, RoutedEventArgs e) {
                if (_Window == null) _Window.Close();
            }

    全体的に状況が把握しづらいのですが、_WindowがnullならClose()メソッドは実行できませんよね? 転記ミスでしょうか?

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2011年9月30日 4:29
    モデレータ
  •         private void UserControl_Unloaded(object sender, RoutedEventArgs e) {
                if (_Window != null) _Window.Close();
            }
    の転記ミスです。
    n_meguro
    2011年10月3日 23:38
  • はい UserControlからWindow.showメソッドを呼んでいます。

    UserContorolもWindowもImageコントロールを貼り付けて画像を表示しています。

    MainWindowにつけたクローズボタンをまたは「×」ボタンをクリックしても

    タスクマネージャーにdwn.exeのスレッドが残存してしまいます。

    プロジェクトをアップできる場所があれば、アップ可能です。

     


    n_meguro
    2011年10月3日 23:52
  • dwn.exeの残存が問題ではなく、デバックモードで起動した場合、自己のプロセスが終了しないことです。
    n_meguro
    2011年10月4日 0:44
  • > プロジェクトをアップできる場所があれば、アップ可能です。

    プロジェクトをそのまま公開されても、検証してもらえる可能性は非常に少ないと思います。可能な限り問題が再現する最小のコードを提示されることをお勧めします。現象の再現に不要なコードを削ぎ落としていく中で、原因が段々見えてくると思います。

    Imageコントロールを使わないとどうなのか。UserControl を使用しない場合どうなのか?イベントハンドラをバインディングに変更するとどうなのか。アプリケーションの終了条件はどうなのか。いろいろコードを絞りながら検証されるといいと思います。


    ひらぽん http://d.hatena.ne.jp/hilapon/
    2011年10月4日 2:03
    モデレータ
  • アプリケーションの終了条件に関しては以下が参考になりますので、確認してみて下さい。

    WPF アプリケーションの終了条件(その1)
    http://blogs.wankuma.com/youryella/archive/2009/10/13/182071.aspx

    WPF アプリケーションの終了条件(その2)
    http://blogs.wankuma.com/youryella/archive/2009/10/14/182119.aspx

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク 山本春海 2012年1月5日 8:42
    2011年10月4日 2:24
    モデレータ