簡體   English   中英

WPF:創建用戶控件還是CustomControl?

[英]WPF: Create a UserControl or a CustomControl?

我不太清楚何時使用CustomControl和何時使用UserControl。 我基本上知道CustomControl允許什么(與模板一起使用時可以進行更多自定義)。

我想在WPF中創建一個“文件瀏覽”控件(顯示當前路徑的TextBlock +觸發“打開文件對話框”的按鈕)。

我不確定,因為在某些地方,我發現他們說應該總是“替換” WPF控件。 我更認為CustomControl更像是一種顯示和編輯一個新語義值(在我的情況下為“ File(path)”)的方法。

因此,如果我們不考慮哪一個更容易實現,那么在我要說的“ FileBrowse”控件的CustomControl和UserControl之間哪個更合適?

謝謝

自定義控件:

  • 松散耦合的控件代碼和用戶界面
  • 源自控制
  • 在ResourceDictionary中定義UI
  • 可以在不同的項目中更改UI
  • 具有完整的工具箱支持
  • 定義一個控件
  • 更靈活

用戶控制:

  • 緊密結合的控件代碼和用戶界面
  • 源自UserControl
  • 將UI定義為普通XAML
  • 用戶界面是固定的,在不同的項目中不能有不同的外觀
  • 無法添加到工具箱
  • 定義一組控件
  • 不太像自定義控件那樣靈活

當我們談論差異時,更重要的是強調使用什么時的上下文:

  • 當用戶界面中包含快速且固定的內容時,請使用UserControl。
  • 當您想將主視圖的某些基本功能分離為可重用的較小部分時,請使用UserControl。
  • 當您想在不同項目中使用控件並且每個項目可能想要更改外觀時,請使用CustomControl。
  • 當您想為控件實現一些其他功能時,請創建從基本控件派生的CustomControl。
  • 當您要將主題應用於控件時,請使用CustomControl。
  • 當您想為控件添加工具箱支持,以便您的用戶能夠拖放到設計器時,請使用CustomControl。

通常,自定義控件擴展了現有控件,而用戶控件從一組現有控件中創建了新的控件類型。 我想說,根據您提供的信息,用戶控件更適合。

我認為UserControl是一個選擇,因為它用於一種“現有控件的組裝”。 在您的情況下,按鈕和文件打開對話框。 然后,它將具有特定的外觀(例如,按鈕的默認外觀和文件打開對話框的默認外觀)。

CustomControl相反。 它本身沒有外觀。 關於布局,它是完全抽象的。 在為樣式分配樣式時,該樣式開始起作用。

暫無
暫無

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

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