2011-12-02 6 views
5

Làm thế nào tôi có thể sửa đổi các điều khiển WPF nhất định (ví dụ: combobox, textbox, vv) để có một progressbar trong nền của điều khiển (mà tôi có thể kích hoạt và vô hiệu hóa theo yêu cầu). Tôi không cần nó để thực sự cho thấy một tiến bộ chính xác, thay vào đó tôi chỉ cần một dấu hiệu cho thấy điều khiển này đang chờ đợi một cái gì đó để kết thúc. Một biểu tượng quay bên trong điều khiển cũng sẽ ổn.Thêm một thanh tiến trình để nền của một điều khiển WPF

Tôi có vẻ như một số câu trả lời đối phó với việc có một quyền kiểm soát trên đầu trang của người khác và đặt độ trong suốt, v.v. nhưng tôi rất muốn tìm giải pháp tốt hơn.

Cảm ơn!

Trả lời

5

Bạn có thể đặt bất cứ thứ gì ở bất cứ đâu, bạn chỉ cần sửa đổi Template tương ứng, có thể không tầm thường, bạn có thể bắt đầu bằng cách sao chép the existing ones.

Để kích hoạt và vô hiệu hóa một cách dễ dàng, bạn có lẽ nên phân lớp điều khiển bạn nhắm mục tiêu để bạn có thể có một tài sản phụ thuộc dành riêng cho rằng có thể được ràng buộc với Visibility của ProgressBar trong mẫu (có lẽ với một BooleanToVisibilityConverter).

+0

Tôi đồng ý với câu trả lời này. Bạn có thể làm rất nhiều công cụ tùy chỉnh trong WPF, vì vậy điều này cũng có thể đạt được với một điều khiển người dùng (hoặc Custom Control, nếu cần). Tuy nhiên, việc cung cấp mẫu kiểm soát mới và kiểm soát được phân loại phụ cũng sẽ là đề xuất của tôi. – Adam

+0

Cảm ơn lời khuyên của bạn. Để sửa đổi mẫu điều khiển, tôi có cần biết mẫu điều khiển hiện tại không? Ví dụ: tôi đang sử dụng ComboBoxEdit của DevExpress, có thể có một Mẫu khác với những gì bạn đã liên kết. – user981225

+0

@ user981225: Bạn không cần phải biết các chi tiết, nhưng bạn cần phải biết những phần thiết yếu, thường là những được ghi nhận như [thuộc tính trên lớp] (http://msdn.microsoft.com/en-us/library/ system.windows.templatepartattribute.aspx). Các điều khiển này cần xuất hiện trong mẫu và phải có tên phần tương ứng. –