2012-05-14 97 views
2

如何打開子窗口並保持父窗口處於活動狀態。我正在使用Silverlight 5和最新版本的工具包。小孩打開時離開父窗口

據我所知,玩刷子可以幫助背景看起來很正常,但父窗口仍然被禁用。

我想實現類似於控件F的查找功能。我希望用戶在子窗口中進行搜索,並且匹配會顯示在主顯示屏上。

感謝你的幫助,

回答

3

ChildWindow爲模式製作(禁用父)使用。

它使用疊加窗口使背景顯示爲已禁用,但它也將Application.Current.RootVisual的IsEnabled標記爲false,然後在關閉ChildWindow時將其恢復。

這可以防止與「父」窗口控件的任何交互。解決這個問題的唯一方法是創建自己的樣式ChildWindow控件,但忽略此行爲。

FloatableWindow是Tim Heuer的工作的一個codeplex項目,這是一個很好的快速解決問題的方法。雖然看起來這個項目並沒有在一段時間內更新,所以與最新的silverlight版本兼容可能會有問題。

DevExpress有一個DXDialog控件,其中包括用於模態和非模態行爲的Show和ShowDialog函數。我相信其他silverlight工具包公司提供了類似的選擇,這只是我熟悉的一個。

如果你不介意做一個自定義的控制,你可以遵循類似蒂姆·豪雅的blog post關於這一主題,以適應自己的控制或使用工具,如Reflector反向工程Silverlight的本身ChildWindow並刪除部分你不不想要。

+0

非常感謝這解釋了爲什麼我有這種行爲。我已經在一個自定義的子窗口中,所以我會看看啓用根視覺屬性來獲取自定義行爲。 – Stainedart

+1

你不需要逆向工程silverlight ChildWindow ...代碼在這裏:http://silverlight.codeplex.com/SourceControl/changeset/view/76139#779565 –