2013-03-20 276 views
0

我正在研究一个项目,我只是想让屏幕闪烁。动画闪烁效果C#

我从来没有编码C#或以前使用过Visual Studio,所以我没有弄清楚我在做什么。

我刚刚敲了一个我试图做的快速javascript版本,你可以在这里看到它。

http://jsfiddle.net/OwenMelbz/73Le7/

我已经附加了VS项目文件http://www.mediafire.com/?6cji3czfsc6f5h3

以下是我在我的xaml.cs文件的那一刻了。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Timers; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Navigation; 
using System.Windows.Shapes; 

namespace WpfApplication3 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     private static System.Timers.Timer testTimer; 

     public MainWindow() 
     { 
      InitializeComponent(); 
      testTimer = new System.Timers.Timer(5000); // 5 seconds 
      testTimer.Elapsed += new ElapsedEventHandler(OnTimerElapsed); 

      testTimer.Interval = 5000; 
      testTimer.Enabled = true; 

     } 

     public void OnTimerElapsed(object source, ElapsedEventArgs e) 
     { 
      this.Dispatcher.Invoke((Action)(() => 
      { 
       b1.Height = 420; 
       b2.Height = 420; 
      })); 
      this.Dispatcher.Invoke((Action)(() => 
      { 
       b1.Height = 0; 
       b2.Height = 0; 
       System.Threading.Thread.Sleep(100); 
      })); 
     } 
    } 
} 

而且继承人什么我有在MainWindow.xaml

<Window x:Class="WpfApplication3.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="1440" 
     Name="Winda" AllowsTransparency="True" WindowStyle="None" 
     Opacity="1" Topmost="True" WindowStartupLocation="CenterScreen" 
     WindowState="Maximized" IsHitTestVisible="False" ShowInTaskbar="False" Background="Transparent"> 
    <Grid> 
     <Rectangle Fill="Black" HorizontalAlignment="Left" Height="0" Stroke="Black" VerticalAlignment="Top" Width="1440" Stretch="Fill" Name="b1"/> 
     <Rectangle Fill="Black" HorizontalAlignment="Left" Height="0" Stroke="Black" VerticalAlignment="Bottom" Width="1440" Margin="0" Stretch="Fill" Name="b2"/> 

    </Grid> 
</Window> 

从JavaScript的演示,我希望你能看到我想要做的事。所以任何帮助将不胜感激!

谢谢。

+0

你可以看看C#中的图形类来看看这里:http://msdn.microsoft.com/en-us/library/system。 drawing.graphics.aspx – Max 2013-03-20 21:08:03

回答

4
<Window x:Class="MiscSamples.BlinkingWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="ScreenBlink" Height="300" Width="300"> 
    <Window.Resources> 
     <Storyboard x:Key="Storyboard" Duration="00:00:05.10" RepeatBehavior="Forever"> 
      <DoubleAnimationUsingKeyFrames Storyboard.TargetName="Trans1" Storyboard.TargetProperty="ScaleY"> 
       <DiscreteDoubleKeyFrame KeyTime="00:00:00" Value="0"/> 
       <DiscreteDoubleKeyFrame KeyTime="00:00:04.99" Value="0"/> 
       <EasingDoubleKeyFrame KeyTime="00:00:05" Value="1"/> 
       <EasingDoubleKeyFrame KeyTime="00:00:05.1" Value="0"/> 
      </DoubleAnimationUsingKeyFrames> 
      <DoubleAnimationUsingKeyFrames Storyboard.TargetName="Trans2" Storyboard.TargetProperty="ScaleY"> 
       <DiscreteDoubleKeyFrame KeyTime="00:00:00" Value="0"/> 
       <DiscreteDoubleKeyFrame KeyTime="00:00:04.99" Value="0"/> 
       <EasingDoubleKeyFrame KeyTime="00:00:05" Value="1"/> 
       <EasingDoubleKeyFrame KeyTime="00:00:05.1" Value="0"/> 
      </DoubleAnimationUsingKeyFrames> 
     </Storyboard> 
    </Window.Resources> 
    <Window.Triggers> 
     <EventTrigger RoutedEvent="Loaded"> 
      <EventTrigger.Actions> 
       <BeginStoryboard Storyboard="{StaticResource Storyboard}"/> 
      </EventTrigger.Actions> 
     </EventTrigger> 
    </Window.Triggers> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition/> 
      <RowDefinition/> 
     </Grid.RowDefinitions> 

     <Rectangle Fill="Black"> 
      <Rectangle.RenderTransform> 
       <ScaleTransform ScaleY="0" x:Name="Trans1"/> 
      </Rectangle.RenderTransform> 
     </Rectangle> 
     <Rectangle Fill="Black" Grid.Row="1" RenderTransformOrigin="0.5,1.0"> 
      <Rectangle.RenderTransform> 
       <ScaleTransform ScaleY="0" x:Name="Trans2"/> 
      </Rectangle.RenderTransform> 
     </Rectangle> 
    </Grid> 
</Window> 

代码背后:

using System.Windows; 

namespace MiscSamples 
{ 
    public partial class BlinkingWindow : Window 
    { 
     public BlinkingWindow() 
     { 
      InitializeComponent(); 
     } 
    } 
} 
+0

aah perfect!谢谢 :) – Owen 2013-03-21 14:07:01