2012-09-20 58 views
1

我是telerik控件的新手,我正在用GridView做一個應用程序,我想使某些行閃爍或閃爍。telerik GridView中的閃爍行

我找到了一個樣式,它通過StyleSelector,但是當我試圖使用styleSelectors更改行背景顏色滾動不起作用的權利。

有誰知道有沒有簡單的方法? 希望有人能幫助我。 謝謝!

回答

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屬性被設置的風格。 因此,如果您的網格中的行之一滿足這個條件,那麼它將動畫所需的時間從白到紅。

+0

查看repeatbehavior來控制動畫觸發的次數。 http://msdn.microsoft.com/en-us/library/system.windows.media.animation.timeline.repeatbehavior.aspx –

+0

並取決於您使用哪個版本的telerik控件(以及您需要的網格性能),您可以關閉EnableRowVirtualisation,這會導致網格在每次滾動時不重新生成行容器,因此不會觸發PropertyChanged並因此不會再次觸發動畫。 –