您的問題讓我想起了WPF中類似問題的解決方案。讓我盡我所能解釋問題和他的解決方案。
問題是爲業務邏輯提供一種方法,通過「交互請求」與用戶進行交互,然後在用戶界面的適當區域處理該交互請求。業務邏輯不會意識到交互中涉及的UI,但會啓動請求事件,然後將其作爲UI進行處理。我再也找不到這個例子了,無論如何它都是以WPF爲中心的,但他基本上是通過創建一個模仿Modal對話框外觀的控件來處理它。然後,他創建了一個Action來處理Interaction事件,並自動將仿製對話框插入TabPage中其他控件頂部的TabPage。一個竅門是,假定「假」對話框將插入到作爲其父項的網格控件中。
所以基本上這裏就是我說的......作爲一個可能的解決方案
- 創建一個用戶控件,看起來就像一個模態對話框。除了包含在透明區域以填充其容器。
- 是否將其插入到TabPage的控件集合中,並放置在所有其他控件的頂部。停靠它來填充TabPage。
其實,這裏的一些照片..
然後當你添加的用戶控件..你有這實際上有它周圍的透明區域假對話,填補標籤頁..
這裏的想法是,你將無法與它下面的控件進行交互,因爲它是上p,但它仍然在標籤頁內,因此它不會影響與其他標籤的交互。第二幅圖像的藍色部分實際上應該是透明的,以便讓您看到它不存在的錯覺,但是防止與其下面的控件進行交互。
雖然這有一些限制,因爲您不能讓對話框大於標籤頁。
我想也許我建議你認爲「箱內」?
快速回答是:不是真的。最好記錄將TopLevel更改爲false時會出現什麼問題。 – LarsTech
只要不顯示帶有標題欄的窗體。這樣做沒有意義。它看起來不正確,用戶可以將表單移出標籤頁,但無法將其取回。如果您需要標題,則只需使用標籤即可。 –