0

我正在做一个我只想让屏幕闪烁的项目。

我以前从未编写过 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 演示中,我希望你能看到我正在尝试做的事情。所以任何帮助将不胜感激!

谢谢你。

4

1 回答 1

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();
        }
    }
}
于 2013-03-20T21:22:30.273 回答