彩票走势图

logo Devexpress WPF控件文档中心

预加载主题资源


立即下载DevExpress WPF

当您将DevExpress WPF主题应用到应用程序时,控件会使用主题资源(默认样式、模板、键)来更改它们的外观。

WPF应用程序仅在即将显示控件时加载控件的主题资源,因此依赖于DevExpress WPF主题的窗口可能需要更长的时间才能出现。

当应用程序的第一个窗口很轻(例如,登录表单),而主应用程序窗口很重(它包含一个或多个控件)时,这种延长的显示时间可能是至关重要的。在这种情况下,第一个窗口出现得很快,但是第二个窗口加载主题资源可能要花很长时间。

和方法允许您加快后续窗口的显示时间,这些方法为在这些窗口上引用的控件程序集预加载主题资源。

更多信息请参考以下方法的备注:/ 。

设置属性为true来启用主题预加载。

异步主题资源预加载

如何使用

当应用程序的启动窗口是轻量级的(比如登录表单)时,异步主题预加载的效果最好,在这种情况下,您可以使用方法在用户输入登录凭据时异步预加载第二个窗口的主题资源。

示例

下面的代码示例创建静态构造函数,并在应用程序启动时异步预加载Office2019Colorful主题资源。

App.xaml.cs:


using System.Windows;
using System.Threading;
using DevExpress.Xpf.Core;

public partial class App : Application {
static App() {
CompatibilitySettings.AllowThemePreload = true;
}
protected async override void OnStartup(StartupEventArgs e) {
base.OnStartup(e);
await ThemeManager.PreloadThemeResourceAsync("Office2019Colorful");
}
}


App.xaml.vb:


Imports System.Windows
Imports System.Threading
Imports DevExpress.Xpf.Core

Public Partial Class App
Inherits Application

Private Shared Sub New()
CompatibilitySettings.AllowThemePreload = True
End Sub

Protected Async Overrides Sub OnStartup(ByVal e As StartupEventArgs)
MyBase.OnStartup(e)
Await ThemeManager.PreloadThemeResourceAsync("Office2019Colorful")
End Sub
End Class


问题

异步主题资源预加载可能会减慢UI线程的资源加载速度。

同步主题资源预加载

何时使用

当您在应用程序启动时显示闪屏管理器时,此技术效果最佳。在这种情况下,该方法在显示闪屏时会加载控件的主题资源。

表现

主题预加载会减慢应用程序的启动速度,但会加快使用预加载主题资源的后续窗口的启动速度。

示例

调用方法来同步预加载主题资源。

下面的代码示例在显示闪屏管理器时预加载Data Grid和LayoutControl程序集:

App.xaml.cs:


using DevExpress.Xpf.Core;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.LayoutControl;
using System;
using System.Runtime.CompilerServices;
using System.Windows;

public partial class App : Application {
static Type[] types;
static App() {
CompatibilitySettings.AllowThemePreload = true;
PreloadThemes();
}
[MethodImpl(MethodImplOptions.NoInlining)]
static void PreloadThemes() {
types = new Type[] { typeof(GridControl), typeof(LayoutControl) };
SplashScreenManager.CreateThemed().ShowOnStartup();
ThemeManager.PreloadThemeResource("Office2019Colorful");
}
}


App.xaml.vb:


Imports DevExpress.Xpf.Core
Imports DevExpress.Xpf.Grid
Imports DevExpress.Xpf.LayoutControl
Imports System
Imports System.Runtime.CompilerServices
Imports System.Windows

Public Partial Class App
Inherits Application

Shared types As Type()

Private Shared Sub New()
CompatibilitySettings.AllowThemePreload = True
PreloadThemes()
End Sub

<MethodImpl(MethodImplOptions.NoInlining)>
Private Shared Sub PreloadThemes()
types = New Type() {GetType(GridControl), GetType(LayoutControl)}
SplashScreenManager.CreateThemed().ShowOnStartup()
ThemeManager.PreloadThemeResource("Office2019Colorful")
End Sub
End Class


扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP