簡體   English   中英

在.net中創建動態GUI的最佳方法是什么?

[英]What is the best way to create dynamic GUI in .net?

我必須在.net中創建動態GUI。 我的要求是,在此GUI中,GUI的某些部分會根據要求進行更改,而有一部分將始終是通用的。 創建這種動態GUI的最佳方法是什么?

我發現最好的方法是使用WPF和MVVM模式。 這是一個模糊的答案,但請留意,這是一個模糊的問題。

正如其他人指出的那樣,具體技術將取決於您用於GUI的技術。 如果沒有特定的信息,那么最好的辦法就是指定一個通用過程。

通常,您將創建一個“主”表單,其中包含通用控件和內容,還包含一個空白面板,可以在其中添加特定內容。

在您的程序執行期間,用戶將執行某些操作(單擊按鈕,從組合框進行選擇等),這將觸發應用程序創建新的子窗體並將其放入上述空白面板。

那是相對容易的部分。 困難的部分是主要形式和植入的子形式之間的協調。 他們共享菜單或工具欄嗎? 孩子必須與父母或孩子的父母溝通嗎?

我們需要您選擇UI框架的更多細節,以便提供更多幫助。

這完全取決於動態UI。 有許多方法可以解決此問題。 以下是一些示例,可為您提供一些想法:

如果它是真正動態的(例如,數據驅動的),因此每次生成UI時都可以完全不同,那么一種非常簡單的方法是根據您的數據創建控件(例如,跟蹤Y坐標,並且每次需要一個新的控件,請在該Y位置創建一種合適的類型,然后將控件的大小(加上一個空格)添加到Y)。 從本質上講,這就是Forms設計器生成的代碼所執行的工作,因此,只需構建一些示例表單並查看生成的代碼,就可以輕松看到任意數量的示例。 放置這些控件的一個好技巧是將它們放在UI窗體的專用Panel控件中-這樣,您可以通過移動面板將動態UI移到父窗體中的任何位置。

如果只是“半動態”,即有一個固定的“池”預定義的用戶界面,根據(例如)當前選擇選擇其中一個,則可以為每個用戶界面構建一個User Control類UI“面板”,然后(a)以編程方式從主窗體添加/刪除它們,或(b)將它們添加到設計器中的所有主窗體,並以編程方式設置Visible = false或Visible = true以確保僅一個面板一次實際上對用戶是可見的。

您當然可以將這些“動態”面板嵌入到UI的固定位中,以便可以自由地將兩種類型的UI元素混合在一起。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM