Tôi đang tạo một điều khiển tùy chỉnh đơn giản mở rộng từ nút bật tắt cho phép người dùng chỉ định nội dung được chọn và bỏ chọn trực tiếp trong XAML. Nó hoạt động tốt nhưng nó được dựa trên một kích hoạt, và tôi không biết làm thế nào để xác định kích hoạt ngoại trừ trong một phong cách. Nếu tôi xác định phong cách, sau đó tôi mất bất cứ thứ gì được đặt bên ngoài điều khiển tùy chỉnh.Cách thêm trình kích hoạt vào điều khiển tùy chỉnh WPF mà không ghi đè kiểu hiện có?
Những gì tôi muốn có thể làm là chỉ cần gắn thêm trình kích hoạt này vào bất kỳ kiểu hiện có nào được đặt ở nơi khác trên điều khiển.
Đây là XAML cho kiểu/trình kích hoạt.
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
<Setter Property="Content" Value="{Binding RelativeSource={RelativeSource Self}, Path=UncheckedContent}" />
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Content"
Value="{Binding RelativeSource={RelativeSource Self}, Path=CheckedContent}" />
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
Tôi đã thử kế thừa kiểu thông qua BaseOn với loại mặc định nhưng nó sẽ không hoạt động nếu điều khiển tùy chỉnh có kiểu thiết lập rõ ràng bởi cha mẹ. Tôi cũng coi EventTriggers nhưng tôi không tin rằng sẽ có một sự kiện để khởi tạo sự kiểm soát.
Cảm ơn bạn đã giúp đỡ bất kỳ ai có thể cung cấp. :)
Cảm ơn bạn đã nhập, nó rất hữu ích. Tôi đã đi một con đường khác nhau nhỏ và mở rộng các phong cách hiện có trong mã phía sau để thêm kích hoạt của tôi mà không làm hỏng một hiện tại. Đề xuất BasedOn bạn đã thực hiện mà tôi đã thử và không hoạt động nếu một kiểu dáng rõ ràng được thiết lập. Tôi đã có từ ý tưởng của bạn mặc dù vì vậy tôi đánh dấu nó như là câu trả lời. Ý tưởng thuộc tính đính kèm thực sự tốt và tôi đã thực hiện thay đổi đó, cảm ơn bạn. :) –
Bạn có nhớ gửi một số chi tiết về những gì bạn đã làm không? Tôi cũng muốn làm điều tương tự. – stone
Điều này vừa lưu cho tôi rất nhiều mã. Cảm ơn! – MattS423