WPF加载启动画面

您所在的位置:网站首页 wpf加载动画 WPF加载启动画面

WPF加载启动画面

2023-08-19 10:36| 来源: 网络整理| 查看: 265

下载demo - 46.16 KB 下载demo app - 26.67 KB

main.jpg 介绍 在MSN messenger的最后一个版本中,当你登录到你的帐户时,你可以注意到简单的动画文本加载。我尝试做一些类似的东西,使应用程序加载看起来专业。 一步一步 创建启动窗口 向WPF应用程序添加一个新窗口。你可以叫它Splashwindow,使窗口无边框和最顶端,你需要添加一些属性,如下所示,添加到XAML在窗口标签或使用属性面板。 隐藏,复制Code

WindowStyle="None" WindowStartupLocation="CenterScreen" ResizeMode="NoResize" ShowInTaskbar="False" Topmost="True"

改变背景 默认情况下,新窗口内容包含一个网格。我们可以改变网格背景使用线性渐变画笔添加以下代码: 隐藏,复制Code

它会是这样的: intial.jpg 添加不透明蒙版 要产生淡入效果,我们需要创建第二个网格,用不透明遮罩覆盖窗口的下半部分。会导致衰落效应时,文本从边界网格的中心,将透明面具的上下部分第二网格,并将文本添加到网格显示加载信息,显示的顺序从中间用新的文本然后搬到隐藏。 下面的XAML代码创建带有文本框的掩码网格: 隐藏,复制Code

网格背景值=#00FFFFFF是完全透明的。我们不需要显示网格,但没有背景,遮罩将不会工作。您可以注意到,在前面的XAML中,textblock具有阴影效果。 在设计视图中,它看起来是这样的: masked.jpg 创建动画 在WPF中,你可以定义动画。你不需要自己写。在Microsoft Blend中,只需要添加一个新的故事板,定义关键帧,并像Flash一样做出改变,但是WPF会为动画生成一个可读的格式。动画将在窗口资源标签中定义并通过键访问。下面的代码显示了两个故事板,每个故事板都有一个1秒的持续时间,只是改变textblock的底部边缘,根据不透明度掩码从隐藏区域移动到可见区域,反之亦然。 隐藏,复制Code

使用后面的代码 现在我们已经创建了XAML中需要的内容。在后面的代码中,我们将创建一个线程来做加载工作,并使动画到文本,首先我们需要访问动画,定义两个故事板对象来访问窗口资源故事板。 隐藏,复制Code

Storyboard Showboard; Storyboard Hideboard;

在InitializeComponent()调用之后,通过以下代码访问窗口资源: 隐藏,复制Code

Showboard = this.Resources["showStoryBoard"] as Storyboard; Hideboard = this.Resources["HideStoryBoard"] as Storyboard;

创建两个函数-一个显示文本,一个隐藏如下: 隐藏,复制Code

private void showText(string txt) { txtLoading.Text = txt; BeginStoryboard(Showboard); } private void hideText() { BeginStoryboard(Hideboard); }

我们需要为每个函数创建委托,以使调用形式的加载头如下: 隐藏,复制Code

private void load() { Thread.Sleep(1000); this.Dispatcher.Invoke(showDelegate, "first data to loading"); Thread.Sleep(2000); //do some loading work this.Dispatcher.Invoke(hideDelegate); Thread.Sleep(2000); this.Dispatcher.Invoke(showDelegate, "second data loading"); Thread.Sleep(2000); //do some loading work this.Dispatcher.Invoke(hideDelegate); Thread.Sleep(2000); this.Dispatcher.Invoke(showDelegate, "last data loading"); Thread.Sleep(2000); //do some loading work this.Dispatcher.Invoke(hideDelegate); //close the window Thread.Sleep(2000); this.Dispatcher.Invoke(DispatcherPriority.Normal, (Action)delegate() { Close(); }); }

显示闪 有许多方式来显示闪屏,但最简单的方式,我认为只是添加以下在InitializeComponent在主窗口: 隐藏,复制Code

new SplashWindow().ShowDialog();

我希望这对你们有用。 的兴趣点 主要的一点是使用不透明掩模和访问故事板背后的形式代码,以及WPF中动画的力量。 历史 2010年10月10日:初任 本文转载于:http://www.diyabc.com/frontweb/news12007.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3