我是 Telerik 控件的新手,我正在使用 GridView 做一个应用程序,我想让一些行闪烁或闪烁。
我找到了通过 StyleSelector 完成的样式,但是当我尝试使用 styleSelectors 更改行背景颜色时,滚动无法正常工作。
有人知道是否有简单的方法吗?希望有人能帮助我。谢谢!
所以解决这个问题的方法是应用一个行样式选择器并将其定位在 Telerik:GridViewRow 的 TargetType 上。
<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 设置样式...因此,如果网格中的一行满足此条件,那么它将在所需的持续时间内从白色变为红色进行动画处理。