Tôi có một điều khiển tab và khi người dùng muốn thêm vào nó, sau đó tôi muốn sao chép một vài phần tử đã tồn tại (không chỉ tham chiếu đến chúng). Bây giờ, cho đến nay tôi đã chỉ cần sao chép các biến tôi muốn. Nhưng tôi đã đến một cropper trong mã định cỡ tự động - đó là, phần tử được sao chép đáng chú ý nằm phía sau bản gốc khi thay đổi kích thước cửa sổ. Ngoài ra, không thể sao chép từng phần tử mà tôi cần sao chép khi danh sách đó tăng lên. Có một số phương pháp tôi có thể sử dụng mà sẽ sao chép một điều khiển WPF? Ngay bây giờ, đó chỉ là một hộp văn bản và một mục tab.Sao chép một điều khiển WPF theo lập trình
Trả lời
Tôi có thể không hiểu câu hỏi của bạn, nhưng bạn có thể tạo UserControl tùy chỉnh và bất cứ khi nào bạn cần thêm điều khiển mới, chỉ cần tạo một phiên bản mới của điều khiển đó và thêm nó vào cảnh của bạn, theo cách này bạn có thể sử dụng DataContext
's để giúp đỡ với các ràng buộc dữ liệu mà bạn có thể sử dụng từ sự kiểm soát sao chép của bạn:
MyControl newControl = new MyControl { DataContext = controlToCopy.DataContext };
myGrid.Children.Add(newControl);
hoặc tương tự ...
hoặc làm bạn cần nó để được nhiều hơn năng động hơn?
tôi không thể khá cho biết những gì nó là bạn đang cố gắng làm nhưng nếu bạn muốn có một ví dụ mới giống với một thể kiểm soát hiện tại bạn có thể sử dụng XamlWriter và XamlReader serialize/deserialize điều khiển:
MyControl copy = XamlReader.Parse(XamlWriter.Save(controlInstance)) as MyControl;
Đây là giải pháp tốt nhưng sẽ yêu cầu nhiều tùy chỉnh (trong trường hợp bạn sử dụng liên kết, StaticResources, X: Tên thuộc tính vv- Vì vậy, bạn phải xử lý các vấn đề được đề cập trong các bài viết này Giới hạn tuần tự của XamlWriter.Save [ http://msdn.microsoft.com/en-us/library/ms754193.aspx] Được viết bởi XamlWriter [ http://blogs.msdn.com/b/mikehillberg/archive/2006/09/16 /xamlwriter.aspx] – akjoshi
các liên kết đó đã chết: ( – JobaDiniz
- 1. Làm thế nào để sao chép/sao chép một điều khiển (với điều khiển con) bằng cách sử dụng asp.net?
- 2. Sao chép + dán một điều khiển Flex DataGrid
- 3. Silverlight: Thuộc tính điều khiển ràng buộc theo lập trình
- 4. học lập trình trình điều khiển Windows
- 5. Sắp xếp một gói dữ liệu wpf theo lập trình
- 6. Thực hiện điều khiển tiến trình thuật sĩ trong WPF
- 7. Cài đặt trình điều khiển theo cách lập trình sử dụng tệp INF C++
- 8. WPF Thực hiện điều khiển người dùng theo lập trình để hiển thị nó dưới dạng PNG
- 9. WPF: Sao chép từ DataGrid
- 10. WPF: lập trình thay đổi màu sắc của một điều khiển với một phong cách tùy chỉnh
- 11. WPF Binding lập trình
- 12. select2: điều khiển theo chương trình trình giữ chỗ
- 13. Lập trình trình điều khiển thiết bị hạt nhân Linux
- 14. Điều khiển trình duyệt web WPF và biểu mẫu winforms
- 15. Kéo điều khiển WPF Popup
- 16. Mẫu điều khiển DataFrid WPF
- 17. Điều khiển tổng hợp WPF
- 18. Thêm một thanh tiến trình để nền của một điều khiển WPF
- 19. Có thể tạo mẫu điều khiển tab WPF trông giống như một điều khiển tab không?
- 20. Điều khiển con trỏ WPF
- 21. Điều khiển biểu đồ WPF
- 22. Điều khiển WPF trong Winforms
- 23. Caliburn.Micro & Telerik WPF Điều khiển
- 24. WPF Cắt điều khiển con
- 25. Điều kiện sao chép bản sao?
- 26. C# Sao chép mảng theo giá trị
- 27. Tab lập trình để điều khiển tiếp theo trong Ext JS
- 28. Mở Bộ điều khiển Xem theo lập trình và không sử dụng Seque
- 29. nhận tuyến đường đến hành động điều khiển (url) theo lập trình
- 30. Có thể điều khiển WPF bằng điều khiển HwndHost không?
Chuyển đổi DataContext đã làm các trick. Cảm ơn! – Puppy