True
に設定すると、私のボタンが起動し、ボタンが動くというボタンIsEnabled
のプロパティにstyle trigger
があります。これは、アプリケーションがロードされて実行されると、コードを無効にしてからコードを無効にして(MVVM)、再度有効にするとうまくいきます。ただし、trigger
は初期ロード時に起動しません。したがって、デフォルトで有効になっているすべてのボタンは動揺しません。トリガーをロード時に動作させるにはどうすればよいですか?ここで WPFスタイルプロパティロード時にトリガーが発生しない
Style
からである私の
App.xaml
<Setter Property="RenderTransformOrigin" Value="0.5,0" />
<Setter Property="RenderTransform">
<Setter.Value>
<RotateTransform />
</Setter.Value>
</Setter>
<Style TargetType="{x:Type Button}" x:Key="btnDefaultStyle">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard TargetProperty="RenderTransform.Angle" RepeatBehavior="Forever">
<DoubleAnimation From="0" To="-5" BeginTime="0:0:0:5.00" Duration="0:0:0.05"/>
<DoubleAnimation From="-5" To="0" BeginTime="0:0:0:5.05" Duration="0:0:0.05"/>
<DoubleAnimation From="0" To="4" BeginTime="0:0:0:5.10" Duration="0:0:0.05"/>
<DoubleAnimation From="4" To="0" BeginTime="0:0:0:5.15" Duration="0:0:0.05"/>
<DoubleAnimation From="0" To="-3" BeginTime="0:0:0:5.20" Duration="0:0:0.05"/>
<DoubleAnimation From="-3" To="0" BeginTime="0:0:0:5.25" Duration="0:0:0.05"/>
<DoubleAnimation From="0" To="2" BeginTime="0:0:0:5.30" Duration="0:0:0.05"/>
<DoubleAnimation From="2" To="0" BeginTime="0:0:0:5.35" Duration="0:0:0.05"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard TargetProperty="RenderTransform.Angle">
<DoubleAnimation From="0" To="0" BeginTime="0:0:0:0" Duration="0:0:0.0"/>
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource btnDefaultStyle}" />
EventTriggers RoutedEvent
、すなわち、 RoutedEvent="Window.Loaded"
は、プロパティIsEnable
イベントをオーバーライドするので使用できません。したがって、無効化されたボタンもまた動揺します。以下のような
フォームがロードされてから、無期限に、またはちょっとだけ動揺するつもりですか? – Logan
無期限。 5秒ごと。ただし、有効になっている場合のみ。 –