Mercurial > silverbladetech
view Chronosv2/source/Extensions/Windows/ApplicationExtensions.cs @ 19:09d18d6e5f40
airport work
author | stevenh7776 stevenhollidge@hotmail.com |
---|---|
date | Thu, 15 Mar 2012 06:59:15 +0000 |
parents | 443821e55f06 |
children |
line wrap: on
line source
using System.Security.Permissions; using System.Windows; using System.Windows.Threading; using System.Windows.Media; namespace Chronos.Extensions.Windows { /// <summary> /// Application extensions /// </summary> public static class ApplicationExtensions { #region · Extension Methods · public static RenderTier GetRenderTier(this Application application) { return (RenderTier)(RenderCapability.Tier / 0x10000); } /// <summary> /// Forces the WPF message pump to process all enqueued messages /// that are above the input parameter DispatcherPriority. /// </summary> /// <param name="priority">The DispatcherPriority to use /// as the lowest level of messages to get processed</param> [SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)] public static void DoEvents(this Application application, DispatcherPriority priority) { DispatcherFrame frame = new DispatcherFrame(); DispatcherOperation dispatcherOperation = Dispatcher.CurrentDispatcher.BeginInvoke(priority, new DispatcherOperationCallback(ExitFrameOperation), frame); Dispatcher.PushFrame(frame); if (dispatcherOperation.Status != DispatcherOperationStatus.Completed) { dispatcherOperation.Abort(); } } /// <summary> /// Forces the WPF message pump to process all enqueued messages /// that are DispatcherPriority.Background or above /// </summary> [SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)] public static void DoEvents(this Application application) { application.DoEvents(DispatcherPriority.Background); } /// <summary> /// Stops the dispatcher from continuing /// </summary> private static object ExitFrameOperation(object obj) { ((DispatcherFrame)obj).Continue = false; return null; } #endregion } }