2

子ウィンドウを開いて親ウィンドウをアクティブに保つにはどうすればよいですか。最新バージョンのツールキットでSilverlight5を使用しています。

ブラシで遊ぶと背景が正常に見えるようになりますが、親ウィンドウはまだ無効になっていることを理解しています。

コントロールFと同様の検索機能を実装しようとしています。ユーザーに子ウィンドウで検索してもらいたいのですが、一致するものがメインディスプレイに表示されます。

ご協力ありがとうございました、

4

1 に答える 1

3

ChildWindowは、モーダル(親を無効にする)で使用するために作成されています。

オーバーレイウィンドウを使用して、発見したとおりに背景が無効になっているように見せますが、Application.Current.RootVisualのIsEnabledをfalseにマークし、ChildWindowを閉じると復元します。

これにより、「親」ウィンドウのコントロールとの相互作用が防止されます。これを回避する唯一の方法は、独自のスタイルのChildWindowコントロールを作成することですが、この動作は省略します。

FloatableWindowは、Tim Heuerの作業によるcodeplexプロジェクトであり、問​​題をすばやく解決するための優れた方法です。また、プロジェクトはしばらく更新されていないようですので、最新のSilverlightバージョンとの互換性には疑問があるかもしれません。

DevExpressには、モーダルおよび非モーダル動作用のShowおよびShowDialog関数を含むDXDialogコントロールがあります。他のSilverlightツールキット会社も同様の代替手段を提供していると確信しています。これは私がよく知っているものです。

カスタムコントロールを作成してもかまわない場合は、このテーマに関するTim Heuerのブログ投稿のようなものに従って、独自のコントロールを適応させるか、Reflectorなどのツールを使用してChildWindowをSilverlight自体からリバースエンジニアリングし、不要な部分を削除することができます。 。

于 2012-05-14T14:21:25.253 に答える