我正在开展一个项目,我只想让屏幕闪烁。
我以前从未编写过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 :(得分: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();
}
}
}