2010-06-07 36 views
18

Tôi đang làm việc để tạo điều khiển người dùng ngày/giờ trong WPF bằng cách sử dụng C# 2008. Kiểm soát người dùng đầu tiên của tôi. Tôi cũng đang sử dụng cuốn sách của Matthew MacDonald, "Pro WPF in C# 2008". Trong cuốn sách đó, ông đặc biệt khuyến khích tạo một điều khiển người dùng bằng cách sử dụng mẫu dự án của WPF Custom Control Library; vì vậy tôi đã theo đề nghị của anh ấy. Tôi đã hoàn thành việc viết mã mà sẽ đi vào những gì tôi nghĩ về như là tập tin mã phía sau. Bây giờ tôi đã sẵn sàng để viết XAML.Sự khác biệt giữa Kiểm soát Người dùng và Thư viện Điều khiển Tùy chỉnh

Vấn đề duy nhất là, tôi vừa phát hiện ra không có tệp .xaml tương ứng? Vì vậy, tôi không nhận được lý do tại sao bằng cách sử dụng một dự án WPF Custom Control Library là tốt hơn, hoặc thích, khi viết một điều khiển người dùng?

Trả lời

28

Điều khiển người dùng và điều khiển tùy chỉnh giải quyết hai vấn đề khác biệt rõ rệt.

UserControls có nghĩa là soạn nhiều điều khiển WPF cùng nhau, để tạo một tập hợp các chức năng được xây dựng từ các điều khiển khác. Điều này thường được sử dụng để soạn một phần của một cửa sổ hoặc màn hình để tổ chức sự phát triển của bạn bằng cách cho phép bạn nhóm nhiều phần chức năng thành một "điều khiển". Ví dụ: nếu bạn muốn kiểm soát việc chỉnh sửa Người dùng cung cấp hộp văn bản cho tên và họ, tuổi, v.v., một UserControl duy nhất có thể được thả vào Cửa sổ và được liên kết với một cá thể Người dùng để chỉnh sửa. (Trong trường hợp này, bạn đang sử dụng các điều khiển tiêu chuẩn, chẳng hạn như TextBox, để "soạn" một điều khiển cho một mục đích phức tạp hơn.)

Một CustomControl, tuy nhiên, có nghĩa là một điều khiển đơn mới. Điều này thường sẽ là một thay thế cho một điều khiển tích hợp (mà không thể được làm lại thông qua templating). Tôi đã thấy rằng sự cần thiết cho CustomControls thực sự là khá hiếm trong WPF, vì các tùy chọn khuôn mẫu WPF và các thuộc tính đính kèm cho phép bạn thực hiện gần như bất kỳ điều gì với các điều khiển tiêu chuẩn, một khi bạn học chúng hoàn toàn.

+0

Cảm ơn bạn đã giải thích. Dường như với tôi thì những gì tôi cần làm là sử dụng dự án điều khiển người dùng chứ không phải dự án thư viện điều khiển tùy chỉnh. – Rod

+3

Điều này không trả lời được câu hỏi. Câu hỏi đặt ra là sự khác biệt giữa Thư viện tùy chỉnh và Kiểm soát người dùng ** Thư viện ** là gì. Tôi có thể lấy câu trả lời này và phỏng đoán cái nào tôi nên sử dụng, nhưng nó vẫn không cho tôi biết hai mẫu dự án khác nhau như thế nào. – jcmcbeth

1

Tôi cũng sẽ thêm, nếu bạn dự định kế thừa từ kiểm soát của mình, thì việc sử dụng điều khiển người dùng sẽ làm phức tạp vấn đề. Ví dụ, nếu tạo một usercontrol cơ sở có bố trí được định nghĩa trong Xaml, khung công tác WPF sẽ không cho phép bạn kế thừa điều khiển này và sử dụng Xaml để định nghĩa bố cục cho lớp con. Trong điều khiển 3.5 Xaml dotnet không thể kế thừa từ một điều khiển Xaml khác

+0

Bạn nói đúng. Đó là lý do tại sao người ta phải ưu tiên Thành phần thừa kế khi làm việc với WPF. –

Các vấn đề liên quan