好玩的WPF第一弹:窗口抖动+边框阴影效果+倒计时显示文字
大家一进到博客就应该看到这张GIF了吧……好吧,今天不是星期一……
那么就来一起做做这个效果啦!看完记得点赞哦~
新建一个WPF项目如果新建WPF项目应该不用我说了吧,在C#下面找找就好了。
MainWindow.xaml在初始的Window下添加如下属性:
x:Name="mainWindow" WindowStartupLocation="CenterScreen" WindowState="Normal" WindowStyle="None" AllowsTransparency="True" Loaded="Window_Loaded" Background="Green" ResizeMode="NoResize"分别是什么意思呢?
1、给窗口命名,以后后面会用到的。
2、设置窗口的出现位置,这里设置为屏幕中心,你可以设置其他位置。
3、窗口的大小,我设置为正常,你也可以设置为全屏(Maximized)。
4、窗口的样式,此处设为无标题。
5、窗口的边框,True表示无边框。
6、窗口的加载事件,稍后会补充的。
7、背景颜色,你可以再修改。
8、不可改变窗口尺寸。
然后被预设好的Grid添加一个名字:
<Grid x:Name="mainGrid"> </Grid>那么界面部分就设好咯。
MainWindow.xaml.cs你首先需要一个计时器:
// 创建DispatcherTimerr对象 private DispatcherTimer dTimer = null;还需要一个前面提到的Window_Loaded事件:
// 窗体加载事件 private void Window_Loaded(object sender, RoutedEventArgs e) { dTimer = new DispatcherTimer(); // 时间间隔,比如每两秒刷新一次 dTimer.Interval = TimeSpan.FromSeconds(1); dTimer.Tick += new EventHandler(timer_Tick); dTimer.Start(); }我们现在应该来写timer_Tick事件了,不过在此之前我们应该决定将要显示什么内容。就以“今天星期一”好了,我们可以创建一个数组,用一个整型变量作为计数器。
我接下来可能比较啰嗦,但只是因为想必看我博客的大多是学生,希望能稍微教教大家思考的方式。
在MainWindow函数前定义全局变量如下:
private int count = 5; private string[] txt = new string[5] {"今","天","星","期","一"};计时器方法如下:
private void timer_Tick(object sender,EventArgs e) { if (count == 0) { dTimer.Stop(); count = 5; dTimer.Start(); } else { TextWindow textWindow = new TextWindow(this.mainGrid,this.mainWindow); textWindow.TxtValue = txt[count-1].ToString(); textWindow.HorizontalAlignment = System.Windows.HorizontalAlignment.Center; textWindow.VerticalAlignment = System.Windows.VerticalAlignment.Center; this.mainGrid.Children.Add(textWindow); count--; } }如果计数器已经为0了,说明数组内的内容已经全部都显示了一遍,那么将其重置后再次开启计数器。
如果不为0,先实例化一个TextWindow窗口,,至于这个窗口是做什么的,我们稍后再看。
再随后我们将数组内的字符串赋值给TextWindow类的实例的属性,并设置它的显示位置。
然后将TextWindow窗口添加到mainGrid中,最后将计数器减一。
TextWindow.xaml新建一个XAML页面大家也会的吧?当然,也可以直接创建UserControl页面。
添加如下代码(我会逐个说明的):
<UserControl x:Class="WpfApplication1.TextWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" RenderTransformOrigin="0.5,0.5" Loaded="UserControl_Loaded" mc:Ignorable="d"> <UserControl.RenderTransform> <TransformGroup> <ScaleTransform x:Name="scale" /> </TransformGroup> </UserControl.RenderTransform> <TextBlock x:Name="textBlock" Width="200" Height="200" FontSize="180" TextAlignment="Center" FontWeight="Bold" FontFamily="宋体" Foreground="Wheat"/> </UserControl>1、RenderTransformOrigin的作用,通俗的讲,就是文字即将从哪个角度出来。此处是窗口的中心。
<1,0>是左下角;<0,1>是右上角
<1,1>是左上角;<0.0>是右下角
2、Loaded同样和前面是一样是加载事件
3、TransformGroup,我们稍后会见到
4、TextBlock用来显示文本
TextWindow.xaml.cs温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/71063.html
- 上一篇:良性的Windows开发环境
- 下一篇:Windows客户端开发简介(四)