2017-01-02 125 views
0

ボタンの背景に色の変更効果を持つボタンを作成しようとしています。しかし、働いていない、親切に助けが必要です。C#WPFカスタム点滅ボタン

ここに私のコードです。

XAML

<Button Margin="0,11,160,0" Name="btnShowNotification" 
Click="btnOpenCashdrawer_Click" HorizontalAlignment="Right" 
Style="{StaticResource NotificationOnButton}" 
VerticalAlignment="Top" Grid.Column="1" /> 

App.xaml

<Style x:Key="NotificationOnButton" TargetType="Button"> 
      <Setter Property="Cursor" Value="Hand" /> 
      <Setter Property="Panel.ZIndex" Value="50000"/> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="Button"> 
         <Border BorderThickness="0" CornerRadius="5" Width="45" Height="30"> 
          <Border.Background> 
           <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
            <GradientStop Color="Gray" Offset="0"/> 
            <GradientStop Color="Black" Offset="1"/> 
           </LinearGradientBrush> 
          </Border.Background> 
          <Image Width="19" Source="Images/turn-notifications-on-button.png" /> 
         </Border> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
      <Style.Triggers> 
       <EventTrigger RoutedEvent="Button.Loaded"> 
        <EventTrigger.Actions> 
         <BeginStoryboard> 
          <Storyboard BeginTime="00:00:00" 
         RepeatBehavior="Forever" AutoReverse="True" 
         Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)"> 
           <ColorAnimation From="Black" To="Red" Duration="0:0:1"/> 
          </Storyboard> 
         </BeginStoryboard> 
        </EventTrigger.Actions> 
       </EventTrigger> 
      </Style.Triggers> 
     </Style> 

答えて

0

あなたがたSolidColorBrushのColorプロパティをアニメーション化しようとしているが、あなたはので、これは動作しませんLinearGradientBrushにボタンの背景を設定しています。

<Style x:Key="NotificationOnButton" TargetType="Button"> 
    <Setter Property="Cursor" Value="Hand" /> 
    <Setter Property="Panel.ZIndex" Value="50000"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="Button"> 
       <Border BorderThickness="0" CornerRadius="5" Width="45" Height="30"> 
        <Border.Background> 
         <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
          <GradientStop x:Name="sp" Color="Gray" Offset="0"/> 
          <GradientStop Color="Black" Offset="1"/> 
         </LinearGradientBrush> 
        </Border.Background> 
        <Image Width="19" Source="Images/turn-notifications-on-button.png" /> 
        <Border.Triggers> 
         <EventTrigger RoutedEvent="Button.Loaded"> 
          <EventTrigger.Actions> 
           <BeginStoryboard> 
            <Storyboard BeginTime="00:00:00" RepeatBehavior="Forever" AutoReverse="True" 
                 Storyboard.TargetName="sp" 
                 Storyboard.TargetProperty="Color"> 
             <ColorAnimation From="Black" To="Red" Duration="0:0:1"/> 
            </Storyboard> 
           </BeginStoryboard> 
          </EventTrigger.Actions> 
         </EventTrigger> 
        </Border.Triggers> 
       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

それはのGradientStopのColorプロパティをアニメーション化:

はこれを試してみてください。

+0

本当にありがとうございました。 –

0

ボタンの点滅アニメーションのサンプルXAMLの下にこれを試してみてください。
XAML

<Window x:Class="WpfApplication4.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:local="clr-namespace:WpfApplication4" 
    mc:Ignorable="d" 
    Title="MainWindow" Height="350" Width="525"> 
<StackPanel> 
    <Button Name="button1" Content="Animate Button!" Width="150" Height="30" Background="Gray" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Click="button1_Click" > 
     <Button.Triggers> 
      <EventTrigger RoutedEvent="Button.Loaded"> 
       <EventTrigger.Actions> 
        <BeginStoryboard> 
         <Storyboard BeginTime="00:00:00" 
           RepeatBehavior="Forever" 
           Storyboard.TargetName="button1" 
           Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)"> 
          <ColorAnimation From="Black" To="Red" Duration="0:0:2"/> 
         </Storyboard> 
        </BeginStoryboard> 
       </EventTrigger.Actions> 
      </EventTrigger> 
     </Button.Triggers> 
    </Button>   
</StackPanel> 

+0

本当にありがとうございますが、#2の回答を使用しました。 –

関連する問題