我是telerik控件的新手,我正在使用GridView做一个应用程序,我想让一些行闪烁或闪烁。
我找到了一个通过StyleSelector执行它的Style,但是当我尝试使用styleSelectors更改行背景颜色时,滚动无效。
有人知道有没有简单的方法? 希望有人可以帮助我。 谢谢!
答案 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的属性设置样式... 因此,如果网格中的某一行符合此条件,那么它将为从白色到红色的所需持续时间设置动画。