Có cách nào để thay đổi (và áp dụng) kiểu động trong WPF không?Thay đổi kiểu động trong WPF
Nói rằng tôi có phong cách khai báo trong XAML:
<Style TargetType="local:MyLine"
x:Key="MyLineStyleKey" x:Name="MyLineStyleName">
<Setter Property="Fill" Value="Pink"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Fill" Value="Blue" />
</Trigger>
</Style.Triggers>
</Style>
Trong một khoảnh khắc, tôi cần phải thay đổi các
Pink
màu sắc, để, nóiGreen
, và tất cả các dòng với phong cáchMyLineStyleKey
trở thành màu xanh lá cây . Một dòng là màu hồng khi được thả ra và màu xanh khi được chọn ... Bây giờ, tôi cần thay đổi thuộc tính chưa được chọn (Màu hồng thành Màu xanh lá cây) ..., vì vậy đây không chỉ là thiết lập màu khác, kích hoạt (lựa chọn> Màu xanh) sẽ không hoạt động nữa ... Có thể không? Làm sao?Có thể liên kết với màu hồng trong Kiểu, cho biết, với nền nút, phản ánh màu phong cách hiện được sử dụng không?
EDIT:
Đối tôi đã cố gắng:
Style s = (Style)this.Resources["MyLineStyleKey"];
(s.Setters[0] as Setter).Value = background;
(s.Setters[1] as Setter).Value = background;
nhưng một ngoại lệ xảy ra:
Sau một 'SetterBase' được sử dụng (đóng dấu), nó không thể sửa đổi.
Điều đó có thể được thực hiện theo phương diện dYnamically. – Wernight