1

私はtelerikコントロールの初心者であり、GridViewを使用してアプリを実行しています。いくつかの行を点滅または点滅させたいと思います。

StyleSelectorを介してそれを行うスタイルを見つけましたが、styleSelectorsを使用して行の背景色を変更しようとすると、スクロールが正しく機能しませんでした。

簡単な方法があるかどうか誰かが知っていますか?誰かが私を助けてくれることを願っています。ありがとう!

4

1 に答える 1

2

したがって、これに対する解決策は、行スタイル セレクターを適用し、それを 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 のプロパティに基づいてスタイルを設定することだけです...したがって、グリッド内の行の 1 つがこの条件を満たす場合、白から赤に必要な期間アニメーション化されます。

于 2012-12-04T10:37:37.333 に答える