- 浏览: 222017 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
zhangwei412827_:
[flash=200,200][/flash]
js 关键字 in 的使用方法 -
flycatdeng:
.classpath文件在哪里?
AndEngine示例运行环境搭建过程 -
revol:
请问,你是如何调用LSMessage,并弹出窗口的?
Silverlight模拟MSN和QQ即时提示消息框
xmal代码(Loading.xaml):
<UserControl x:Class="Longshine.SLLib.CommonXaml.Loading" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > <Grid x:Name="LayoutRoot" Width="Auto" Height="Auto"> <Grid Background="Black" Opacity="0.2"></Grid> <Canvas Width="320" Height="50"> <Rectangle RadiusX="8" RadiusY="8" Stroke="{x:Null}" Fill="#19000000" Height="49" Width="316" Canvas.Left="6" Canvas.Top="3"/> <Rectangle RadiusX="8" RadiusY="8" Stroke="{x:Null}" Fill="#19000000" Height="48" Width="316" Canvas.Left="5" Canvas.Top="3"/> <Border Height="50" Width="320" Background="#FFFFFFFF" BorderBrush="#FFACACAC" BorderThickness="1,1,1,1" CornerRadius="8,8,8,8"> <Rectangle RadiusX="8" RadiusY="8" Stroke="{x:Null}" Margin="1,1,1,1"> <Rectangle.Fill> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FFFFFFFF"/> <GradientStop Color="#FFE9E9E9" Offset="1"/> </LinearGradientBrush> </Rectangle.Fill> </Rectangle> </Border> </Canvas> <Grid Width="320" Height="50" VerticalAlignment="Center"> <Grid.ColumnDefinitions> <ColumnDefinition Width="5*" /> <ColumnDefinition Width="10*" /> <ColumnDefinition Width="80*" /> <ColumnDefinition Width="5*" /> </Grid.ColumnDefinitions> <Image Stretch="None" Source="Images/loading.png" Grid.Column="1" Opacity="0.3" /> <Image x:Name="loadingImage" Stretch="None" Source="Images/loading.png" Grid.Column="1" RenderTransformOrigin="0.5,0.5"> <Image.RenderTransform> <RotateTransform Angle="0"></RotateTransform> </Image.RenderTransform> </Image> <TextBlock x:Name="titleText" FontFamily="Calibri" FontSize="13" Foreground="#FF000000" HorizontalAlignment="Left" Grid.Column="3"/> <TextBlock Text="系统处理:" x:Name="loadingText" FontFamily="Verdana" FontSize="14" VerticalAlignment="Center" HorizontalAlignment="Left" Grid.Column="2"/> </Grid> </Grid> <UserControl.Resources> <Storyboard x:Name="storyboard"> <DoubleAnimation Storyboard.TargetName="loadingImage" Duration="0:0:0.7" To="360" Storyboard.TargetProperty="(UIElement.RenderTransform).RotateTransform.Angle" RepeatBehavior="Forever"></DoubleAnimation> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="loadingText" Storyboard.TargetProperty="Opacity" RepeatBehavior="Forever"> <SplineDoubleKeyFrame KeyTime="00:00:0.0" Value="0"/> <SplineDoubleKeyFrame KeyTime="00:00:0.5" Value="1"/> <SplineDoubleKeyFrame KeyTime="00:00:1.0" Value="0"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </UserControl.Resources> </UserControl>
CS代码(Loading.xaml.cs):
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; namespace Longshine.SLLib.CommonXaml { public partial class Loading : UserControl { public string Title { get { return this.titleText.Text; } set { this.titleText.Text = value; } } public Loading() { InitializeComponent(); this.storyboard.Begin(); } public void SetLoadingText(string text) { this.loadingText.Text = "系统处理: " + text; } } }
应用代码(LSWindow.cs):
using System; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Ink; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Longshine.SLLib.CommonXaml; using System.Collections.Generic; using Longshine.SLLib.InputControls; using System.Threading; using System.Windows.Threading; using Telerik.Windows.Controls; using ClientUtils; namespace Longshine.SLLib { public class LSWindow { private static Loading loading; static LSWindow() { System.Windows.Controls.Control rootPage = Application.Current.RootVisual as System.Windows.Controls.Control; Panel panel = VisualTreeHelper.GetChild(rootPage, 0) as Panel; int count = VisualTreeHelper.GetChildrenCount(rootPage); if (loading == null) { loading = new Loading(); loading.Visibility = Visibility.Collapsed; panel.Children.Add(loading); } } public static void ShowLoading(string message) { if (loading != null) { loading.Dispatcher.BeginInvoke(() => { loading.Visibility = Visibility.Visible; loading.SetLoadingText(message); }); } } public static void HideLoading() { if (loading != null) loading.Dispatcher.BeginInvoke(() => loading.Visibility = Visibility.Collapsed); } /// <summary> /// 记录大批量信息,提示用户 /// </summary> /// <param name="msg"></param> public static void MessagePrompt(List<string> msg) { var msgPromptForm = new MessagePromptForm(); msgPromptForm.lbMessage.ItemsSource = msg; msgPromptForm.Show(); } /// <summary> /// 一般性弹出提示框 /// </summary> /// <param name="msg"></param> public static void Alert(object msg) { RadWindow.Alert(new TextBlock { Text = msg.ToString(), Width = 300, TextWrapping = TextWrapping.Wrap }); } /// <summary> /// 捕获异常信息,提示用户,并记录日志 /// </summary> /// <param name="ex">异常</param> public static void AlertError(System.Exception ex) { AlertError(ex, true); } /// <summary> /// 捕获异常信息,提示用户,是否记录日志 /// </summary> /// <param name="ex">异常</param> /// <param name="isLog">是否记录日志</param> public static void AlertError(System.Exception ex, bool isLog) { if (ex == null) return; RadWindow.Alert(new TextBlock { Text = "出现异常:" + ex.Message + "\n可能原因:" + ex.StackTrace, Width = 300, TextWrapping = TextWrapping.Wrap }); if(isLog) LogFactory.FileLogger.Log("出现异常:" + ex.Message + ", 可能原因:" + ex.StackTrace, LOGLEVEL.FATAL); } } }
界面:
注明:全局等待提示框代码来自于EasySL
发表评论
-
以假乱真解决WebBrowser遮挡SL控件的问题
2010-09-02 11:49 1592查找了很多官网文档、资料、论坛,WebBrowser遮 ... -
Path的Data生成归总
2010-08-26 11:53 1412Path的Data数据有三种生 ... -
Path Data 常用图形(整理中....)
2010-08-26 11:38 17691 三角形 <Path Stroke="# ... -
根据类型名称获取类型的对象
2010-08-23 10:12 1723private Type GetTypeCore(string ... -
多级菜单导航工具条
2010-08-10 14:08 1637多级菜单导航工具条 animated multi-leve ... -
Image控件的属性扩展
2010-08-07 10:56 1140扩展Image的属性,显示Web下的图片。 ... -
Silverlight模拟MSN和QQ即时提示消息框
2010-07-23 15:17 2266LSMessagePopup.cs: using Syste ... -
动态加载XAML文件(2)
2010-06-09 22:28 1545C#代码部分 using System; using Sy ... -
动态加载XAML文件
2010-06-09 20:34 3795Silverlight 2 提供了 System.W ... -
允许空值的下拉框
2010-05-27 09:56 1403LSComboBoxItem.cs using Sys ... -
分析silverlight里的URI引用资源文件的各种情况
2010-05-08 17:01 1819主要介绍一下在silverlight里的资源文件(图 ... -
Silverlight Validation
2010-05-08 14:57 1259Silverlight DataForm Valida ... -
Silverlight专业网站(整理中...)
2010-05-08 13:24 11241 Microsoft Silverlight htt ... -
Silverlight中常用方法使用总结(整理中...)
2010-05-08 11:40 9021 获取URL地址 Url = Application.Cu ... -
Silverlight同步通信
2010-05-08 11:29 2349SL调用WCF方法,默认是异步的,但有些情况,我们使用同 ...
相关推荐
此外,`EYProgressHUD`提供了异步显示和隐藏的功能,可以在后台任务完成后自动关闭提示框,避免了忘记关闭导致的用户体验问题。 总的来说,`EYProgressHUD`是一个强大的工具,可以帮助开发者快速、便捷地处理提示和...
通过设置`setLabelText()`可以更改对话框中的提示文本,以向用户提供更具体的信息。`setMinimumDuration()`方法可以设置对话框至少显示的时间,避免短时间的操作导致对话框一闪而过。 最后,`QProgressDialog`也...
在Vue3中,为了提高代码复用性和用户体验,开发者经常需要封装一些全局的、通用的UI组件,例如弹窗提示。本篇文章将详细介绍如何利用Vue3的特性来封装一个类似于Element UI的全局通用弹窗提示组件,并通过JavaScript...
在Web开发中,我们经常需要在页面处理异步请求或执行长时间操作时,向用户展示一个等待提示或者加载指示器,以告知用户页面正在处理事务并防止用户在此期间进行其他操作。jQuery BlockUI 插件就是这样一个工具,它能...
在实际使用中,开发者可以将ATMHud集成到项目的`AppDelegate`中,全局管理提示框的显示,或者在需要的地方直接导入并使用。例如,当网络请求开始时,显示加载提示,请求完成后隐藏提示: ```objc // 显示加载提示 ...
Ajax全局加载框的配置是提升用户体验的重要手段,通过使用jQuery的`ajaxSetup`方法和第三方库如layer,可以方便地实现在Ajax请求过程中的加载提示。处理并发请求时的策略调整有助于避免加载框的误关闭,确保良好的...
3. `AfxMessageBox()`:显示一个对话框,用于向用户显示消息并等待用户响应,常用于简单的错误提示或确认操作。 4. `AfxThrowMemoryException()`:当内存分配失败时抛出一个异常,这是MFC内存管理机制的一部分。 ...
3. **全局和局部**:它可以设置为全局加载等待,意味着整个页面在进行Ajax请求时都会显示加载提示。也可以针对特定元素或区域设置局部加载等待,只对选定部分显示加载效果。 4. **异步操作**:在进行Ajax请求时,...
Vue.js是一个流行的轻量级前端框架,而Element UI则是一个为Vue.js设计的丰富的UI组件库,它提供了诸如按钮、表格、加载提示等组件。 首先,为了实现全局loading,我们需要引入必要的组件。在Vue项目中,这通常包括...
在Android开发中,为了提升用户体验,开发者经常需要创建各种自定义的Loading加载框来提示用户应用正在处理数据或执行操作。本教程将详细介绍三种不同的自定义加载框实现方法,帮助你的应用程序在等待过程中呈现更...
本文将深入探讨"vue响应拦截"、"服务等待"以及"状态码处理"这三个关键知识点。 首先,"vue响应拦截"是指在Vue应用中设置axios的拦截器,以便在发送请求之前或收到响应之后执行特定的操作。这可以帮助我们统一处理...
这里可以使用fly.js的锁机制,在获取到新的token之前,暂停之前的请求,等待token获取完毕之后再继续执行。 整合上述代码后,我们将fly.js实例挂载到Vue的原型上,这样,项目中的所有Vue组件都可通过`this.$flyio`...
在Android应用开发中,用户体验是至关重要的,尤其是在数据加载过程中,用户往往需要等待,此时一个良好的加载状态视图可以显著提升用户体验。`Gloading`就是这样一款开源项目,它旨在以低耦合的方式帮助开发者在...
这些动画可能包括旋转、缩放、平移、模糊等视觉效果,以吸引用户的注意力并传达等待信息。 在提供的文件中,`index.html`是主HTML文件,其中包含了实现这些加载动画的HTML结构。HTML元素(如`<div>`)通常会包含...
在实际开发中,全局loading效果与错误提示处理是提升用户体验的重要组成部分。本文将详细探讨如何在Vue项目中实现全局loading以及错误提示功能。 首先,关于全局loading效果的实现,核心思路是在发起网络请求之前...
- `wait`展示了一个等待提示,显示3秒后自动关闭。 - `alert`和`confirm`则分别对应标准的警告和确认对话框,`alert`简单地显示一条消息,`confirm`则需要用户确认操作。 在`customize`案例中,我们可以看到如何...
3. **回调函数**:在完成数据加载后,通过回调函数 `docallback` 来处理操作成功后的逻辑,比如隐藏等待提示,这有助于实现异步编程和模块化设计。 4. **AJAX请求**:使用 `$.ajax` 进行GET请求来获取数据,处理...
加载框在用户等待数据加载或处理时显示,提供视觉反馈,提升用户体验。 在微信小程序开发中,开发者通常会遇到需要展示加载状态的情况,如页面数据的异步加载、网络请求、长时间计算等。LoadingView是为了解决这一...
在实际应用中,这些等待动图可以集成到网页的各个部分,如页面顶部的全局加载提示、内容区的局部加载指示、或者是弹出框的加载状态。通过JavaScript或CSS,开发者可以控制动图的显示和隐藏,与后端数据的加载状态...
这意味着,每当页面上任何Ajax请求处于等待状态,且没有其他的Ajax请求正在执行时,ajaxStart事件就会被触发。这个事件的典型用途是实现一个加载提示,以告诉用户正在发送网络请求。 ### 重写Ajax方法与利用jQuery...