• <menu id="w2i4a"></menu>
  • logo Devexpress WPF控件文檔中心

    預(yù)加載主題資源


    立即下載DevExpress WPF

    當(dāng)您將DevExpress WPF主題應(yīng)用到應(yīng)用程序時(shí),控件會(huì)使用主題資源(默認(rèn)樣式、模板、鍵)來(lái)更改它們的外觀。

    WPF應(yīng)用程序僅在即將顯示控件時(shí)加載控件的主題資源,因此依賴于DevExpress WPF主題的窗口可能需要更長(zhǎng)的時(shí)間才能出現(xiàn)。

    當(dāng)應(yīng)用程序的第一個(gè)窗口很輕(例如,登錄表單),而主應(yīng)用程序窗口很重(它包含一個(gè)或多個(gè)控件)時(shí),這種延長(zhǎng)的顯示時(shí)間可能是至關(guān)重要的。在這種情況下,第一個(gè)窗口出現(xiàn)得很快,但是第二個(gè)窗口加載主題資源可能要花很長(zhǎng)時(shí)間。

    PreloadThemeResourcePreloadThemeResourceAsync方法允許您加快后續(xù)窗口的顯示時(shí)間,這些方法為在這些窗口上引用的控件程序集預(yù)加載主題資源。

    更多信息請(qǐng)參考以下方法的備注:PreloadThemeResource / PreloadThemeResourceAsync。

    設(shè)置CompatibilitySettings.AllowThemePreload屬性為true來(lái)啟用主題預(yù)加載。

    異步主題資源預(yù)加載

    如何使用

    當(dāng)應(yīng)用程序的啟動(dòng)窗口是輕量級(jí)的(比如登錄表單)時(shí),異步主題預(yù)加載的效果最好,在這種情況下,您可以使用PreloadThemeResourceAsync方法在用戶輸入登錄憑據(jù)時(shí)異步預(yù)加載第二個(gè)窗口的主題資源。

    示例

    下面的代碼示例創(chuàng)建靜態(tài)構(gòu)造函數(shù),并在應(yīng)用程序啟動(dòng)時(shí)異步預(yù)加載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


    問(wèn)題

    異步主題資源預(yù)加載可能會(huì)減慢UI線程的資源加載速度。

    同步主題資源預(yù)加載

    何時(shí)使用

    當(dāng)您在應(yīng)用程序啟動(dòng)時(shí)顯示閃屏管理器時(shí),此技術(shù)效果最佳。在這種情況下,該方法在顯示閃屏?xí)r會(huì)加載控件的主題資源。

    表現(xiàn)

    主題預(yù)加載會(huì)減慢應(yīng)用程序的啟動(dòng)速度,但會(huì)加快使用預(yù)加載主題資源的后續(xù)窗口的啟動(dòng)速度。

    示例

    調(diào)用preloadthemerresource方法來(lái)同步預(yù)加載主題資源。

    下面的代碼示例在顯示閃屏管理器時(shí)預(yù)加載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
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();