Tôi cần tạo điều khiển để vẽ đường viền quanh con của nó. Vì vậy, tôi đã tạo lớp học và bắt nguồn từ Decorator:Lớp WPF Decorator có hữu ích không?
class RoundedBoxDecorator : Decorator
{
protected override Size ArrangeOverride(Size arrangeSize)
{
//some source
}
protected override void OnRender(DrawingContext dc)
{
//some source
}
}
Nó hoạt động tốt, nhưng tôi có một số nghi ngờ về việc sử dụng Decorator làm tổ tiên. Tôi đã tìm thấy trong MSDN rằng không có phương pháp hay đặc tính đặc biệt nào trong nó, chỉ bắt nguồn từ tổ tiên của nó (UIElement hoặc FrameworkElement). ArrangeOverride và OnRender cũng có nguồn gốc.
Vì vậy, điều gì cho lớp Decorator được thiết kế và sử dụng nó có ý nghĩa không? Hoặc tôi có thể lấy được từ FrameworkElement?
Cảm ơn câu trả lời của bạn. Tôi cần một số biên giới đặc biệt, vì vậy tôi quyết định triển khai trang trí của riêng mình. – darja
@darja Nếu nó là một biên giới tôi lấy được từ 'Biên giới', ít nhất là để làm cho sự lựa chọn ngữ nghĩa rõ ràng. Tôi không biết những gì bạn đang cố gắng để đạt được, nhưng 'RoundedBoxDecorator' âm thanh một chút giống như một workaround cho' Border.CornerRadius'. – grek40