0

私は1つのテーブルを作成しました.MouseMoveが発生している間、TableRowの背景色を変更したい.MouseLeaveが発生すると、TableRowの古い色に戻ります. ここにコーディングがありますが、機能していません。

currentRow.MouseMove += new MouseEventHandler(ShowRowColor);
currentRow.MouseLeave += new MouseEventHandler(HideRowColor);

void ShowRowColor(object sender, System.Windows.Input.MouseEventArgs e){
        TableRow tr = sender as TableRow;
        ColorAnimation animation = new ColorAnimation();
        animation.From = (tr.Background as SolidColorBrush).Color;
        animation.To = Colors.Indigo;
        animation.Duration = new Duration(TimeSpan.FromSeconds(5));
        tr.BeginAnimation(SolidColorBrush.ColorProperty,animation);
    }

    void HideRowColor(object sender, System.Windows.Input.MouseEventArgs e) {
        TableRow tr = sender as TableRow;
        ColorAnimation animation;
        animation = new ColorAnimation();
        animation.From = Colors.Indigo;
        animation.To = (tr.Background as SolidColorBrush).Color;
        animation.Duration = new Duration(TimeSpan.FromSeconds(1));
        tr.BeginAnimation(SolidColorBrush.ColorProperty,animation);
    }

私を助けてください...

4

1 に答える 1

0

のプロパティをターゲットにする必要がBackgroundあるため、 のプロパティでアニメーションを開始する必要があります。TableRowColorSolidColorBrush

例:

tr.Background.BeginAnimation(SolidColorBrush.ColorProperty, animation);
于 2013-04-13T08:52:32.250 に答える