1

非表示のタブを持つタブ コントロールがあります。

フォームの特定の領域にマウスを合わせると、実行される c# ハンドラーが呼び出されます。

((Storyboard)FindResource("animate")).Begin(HiddenTab);

アニメーションのストーリーボード:

    <Storyboard x:Key="animate">
        <ObjectAnimationUsingKeyFrames BeginTime="0:0:0" Storyboard.TargetProperty="Visibility">
            <DiscreteObjectKeyFrame KeyTime="0">
                <DiscreteObjectKeyFrame.Value>
                    <Visibility>Visible</Visibility>
                </DiscreteObjectKeyFrame.Value>
            </DiscreteObjectKeyFrame>
        </ObjectAnimationUsingKeyFrames>
        <DoubleAnimation BeginTime="0:0:0.0" Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:0.2"/>
        <DoubleAnimation BeginTime="0:0:2.5" Storyboard.TargetProperty="Opacity" From="1" To="0" Duration="0:0:0.5"/>
        <ObjectAnimationUsingKeyFrames BeginTime="0:0:5.5" Storyboard.TargetProperty="Visibility">
            <DiscreteObjectKeyFrame KeyTime="0">
                <DiscreteObjectKeyFrame.Value>
                    <Visibility>Hidden</Visibility>
                </DiscreteObjectKeyFrame.Value>
            </DiscreteObjectKeyFrame>
        </ObjectAnimationUsingKeyFrames>
    </Storyboard>

ここでやりたいことは、マウスがタブ項目の上にあるときにアニメーションを一時停止し、マウスがタブ項目を離れたときにアニメーションを再開することです。

EventSetterコントロール テンプレートを介してタブ項目に sを適用し、次のように呼び出します。

((Storyboard)FindResource("animate")).Pause(HiddenTab);

しかし、ウィンドウ リソースとして定義されているanimateため、TabItem ControlTemplate 内で見つけることができないと書かれています。animate

一時停止/再開できるようにストーリーボードにアクセスするにはどうすればよいですか?

4

1 に答える 1

0

このコードを使用して wpf のリソースにアクセスしてみてください

Object res1 = this.Resources["animate"];

ストーリーボードにタイプキャストして、役立つかどうかを確認してください。

于 2013-09-24T17:51:46.233 に答える