0
我有一個datagrid,其中的行顏色由我在我的rowstyle中轉換的級別參數決定。這很好,但現在我也想在使用鼠標進行拖放時暫時改變顏色並拖放(當我離開或放下時改回)。我設法改變顏色與此代碼:在WPF中的故事板彩色動畫之後回到舊的顏色
<DataGrid.RowStyle>
<Style TargetType="DataGridRow" BasedOn="{StaticResource MyDataGridRowStyle}">
<Setter Property="Background" Value="{Binding Level,Converter={StaticResource LevelToIndentConverter}}" />
<Style.Triggers>
<EventTrigger RoutedEvent="DataGridRow.DragEnter">
<BeginStoryboard x:Name="DragHoverStoryboard">
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="Background.Color"
Duration="0:0:0" To="#41B1E1"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="DataGridRow.DragLeave">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="Background.Color"
Duration="0:0:0" To="Transparent" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
問題是要回到原來的顏色。目前,我在DragLeave事件觸發器中將「To」設置爲透明,但我希望它是我的「舊」顏色。
我試圖做一個簡單的綁定(與我的setter相同),但我得到異常,並閱讀,你不能綁定彩色動畫。那麼有什麼我可以使用或解決這個問題嗎?總之我只是想這樣的:
- 鼠標進入一行拖放
- 行改變顏色X
- 鼠標離開行(或我滴)
- 行變回它的顏色Y(其中y對於不同的行是不同的,所以不是硬編碼的)。
哎,對不起,我忘了/是有點不清楚。這是當我做拖放,然後我認爲我必須做EventTriggers?如果不是解決方案會奏效。我更新了這個問題,使其更加明顯。 – user1776562