2009-04-09 55 views
5

Tôi muốn xác định một ControlTemplate khi chạy. Điều này có thể không? Tôi đã nhận thấy các tài sản VisualTree trên lớp ControlTemplate. Tôi cũng đã nhận thấy rằng nó sử dụng lớp FrameworkElementFactory. Tuy nhiên, tôi không thể làm cho nó hoạt động được.Xác định Bảng điều khiển WPF tại thời gian chạy

Có thể tạo ControlTemplate khi chạy không?

Trả lời

8

Có, bạn có thể thực hiện việc này bằng cách sử dụng FrameworkElementFactory. Charles Petzold có một hướng dẫn trong chương 11 của "Applications = Code + Markup", nhưng ý tưởng cơ bản là bạn tạo một FrameworkElementFactory cho phần tử gốc template (và các nhà máy khác cho bất kỳ phần tử con nào), tạo một ControlTemplate và thiết lập tài sản VisualTree của ControlTemplate cho FrameworkElementFactory:

FrameworkElementFactory borderFactory = new FrameworkElementFactory(typeof(Border)); 
// set properties and create children of borderFactory 
ControlTemplate template = new ControlTemplate(); 
template.VisualTree = borderFactory; 

myButtonInstance.Template = template; 
-1

Lớp điều khiển WPF có thuộc tính 'Mẫu' mà bạn có thể đặt tại thời gian chạy.

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