在telerik GridView中闪烁行

时间:2012-09-20 10:29:26

标签: wpf gridview

我是telerik控件的新手,我正在使用GridView做一个应用程序,我想让一些行闪烁或闪烁。

我找到了一个通过StyleSelector执行它的Style,但是当我尝试使用styleSelectors更改行背景颜色时,滚动无效。

有人知道有没有简单的方法? 希望有人可以帮助我。 谢谢!

1 个答案:

答案 0 :(得分:2)

因此解决方法是应用行样式选择器并将其定位在telerik的TargetType:GridViewRow ..

<Behaviours:FlashingRowStyleSelector x:Key="resultsGridStyle">
        <Behaviours:FlashingRowStyleSelector.SucceededStyle>
            <Style TargetType="telerik:GridViewRow">
                <Style.Triggers>
                    <Trigger Property="Visibility" Value="Visible">
                    <Trigger.EnterActions>
                        <BeginStoryboard>
                            <Storyboard >
                                <ColorAnimation Storyboard.TargetProperty="Background.Color"
                                          Duration="0:0:0.2"  From="White" To="Red" RepeatBehavior="Forever" AutoReverse="True"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </Trigger.EnterActions>
                </Trigger>
            </Style.Triggers>
       </Style>

        </Behaviours:FlashingRowStyleSelector.SucceededStyle>

然后在你有这个属性集

RowStyleSelector =“{StaticResource resultsGridStyle}”

然后控制它 - 你必须编写一个继承自StyleSelector的类,它根据填充网格中任何行项的值来决定选择哪种样式。所以像这样的事情应该可以做到这一点

public class FlashingRowStyleSelector : StyleSelector
{
    #region Properties

    /// <summary>
    /// Gets or sets the succeeded style.
    /// </summary>
    public Style SucceededStyle { get; set; }

/// <summary>
    /// Gets or sets the succeeded style.
    /// </summary>
    public Style NormalStyle{ get; set; }

    #endregion

    #region Public Methods

    /// <summary>
    /// The select style.
    /// </summary>
    /// <param name="item">
    /// The item.
    /// </param>
    /// <param name="container">
    /// The container.
    /// </param>
    /// <returns>
    /// The <see cref="Style"/>.
    /// </returns>
    public override Style SelectStyle(object item, DependencyObject container)
    {
        var info = item as RowObject
        if (info != null)
        {
            if (info.SomeProperty == "1")
            {
                return this.SucceededStyle;
            }


        }

        return this.NormalStyle;
    }

    #endregion
}

基本上这一切都是基于设置为1的属性设置样式... 因此,如果网格中的某一行符合此条件,那么它将为从白色到红色的所需持续时间设置动画。