Tôi gặp sự cố với số ControlTemplate
cho ToggleButton
tôi đã tạo.Tại sao ColorAnimation cho trạng thái được kiểm tra không bền màu sau khi trạng thái MouseOver được kích hoạt?
Khi nút là Checked
, một ColorAnimation
được kích hoạt và nền của điều khiển thay đổi màu. Tuy nhiên, nếu người dùng vào trạng thái MouseOver
, một hoạt ảnh khác được kích hoạt cũng ảnh hưởng đến nền của nút.
Khi chuột không còn ở trạng thái MouseOver
, điều khiển không quay trở lại màu khi nó ở trạng thái Checked
. Tôi không chắc tại sao điều này không tồn tại khi trạng thái MouseOver
được kích hoạt.
Phần VisualStateManager
của ControlTemplate
tôi trông sorta như thế này:
<VisualStateManger.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"></VisualState>
<VisualState x:Name="MouseOver">
<Storyboard>
<ColorAnimation Storyboard.TargetName="BackgroundBorder"
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
To="Gold" Duration="0:0:0.3" />
</Storyboard>
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="CheckedStates">
<VisualState x:Name="Checked">
<Storyboard>
<ColorAnimation Storyboard.TargetName="BackgroundBorder"
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
To="PaleGoldenrod" Duration="0:0:0.3" />
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
Tôi nghĩ rằng không phải là một ý tưởng hay để làm động các thuộc tính mục tiêu giống nhau trong các trạng thái trực quan thuộc về các nhóm khác nhau. Một trong những giải pháp sẽ là có trạng thái trực quan trong nhóm khác nhau hoạt động trên các tập hợp các thuộc tính/yếu tố khác nhau. –
Tôi đã suy nghĩ bởi vì tôi đang hoạt hình cùng một tài sản đó là nguồn gốc của vấn đề. –