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

    調(diào)色板


    立即下載DevExpress WPF

    調(diào)色板允許將顏色(例如,公司顏色)集成到應(yīng)用程序中,并自定義主題中使用的顏色,您可以在此實例中創(chuàng)建自定義調(diào)色板或使用預(yù)定義的調(diào)色板。

    調(diào)色板

    Palette是一個命名顏色列表,每種顏色都有一個ColorName值和一個color值,您可以使用ColorName為任意數(shù)量的UI元素分配顏色:

    列表

    提示:您可以使用WPF主題設(shè)計器編輯調(diào)色板顏色或?qū)⑵?a target="_blank">綁定到UI元素。

    包含調(diào)色板的主題

    主題

    預(yù)定義的調(diào)色板

    調(diào)色板主題包括以下預(yù)定義的調(diào)色板

    調(diào)色板
    在代碼中應(yīng)用調(diào)色板

    提示:當您切換主題時,應(yīng)用程序不會卸載已加載的主題程序集。

    1. 在項目中引用 Mono.cecil NuGet包。
    2. 調(diào)用Theme.RegisterPredefinedPaletteThemes方法來啟用預(yù)定義的調(diào)色板。
    3. ApplicationThemeHelper.ApplicationThemeName屬性設(shè)置為所需的predefined palette名稱和base theme名稱組合。

    C#:

    Theme.RegisterPredefinedPaletteThemes();
    ApplicationThemeHelper.ApplicationThemeName = PredefinedThemePalettes.RedWine.Name + Theme.Office2019White.Name;

    VB.NET:

    Theme.RegisterPredefinedPaletteThemes()
    ApplicationThemeHelper.ApplicationThemeName = PredefinedThemePalettes.RedWine.Name + Theme.Office2019White.Name

    提示:可以使用Theme.CachePaletteThemes屬性來緩存當前的調(diào)色板主題程序集,緩存減少了將來應(yīng)用程序運行時的加載時間。

    上面的代碼示例為當前主題啟用了all available palettes ,要啟用并應(yīng)用single palette則需要:

    1. 在項目中引用 Mono.cecil NuGet包。
    2. 將調(diào)色板和基本主題傳遞給Theme.CreateTheme方法來創(chuàng)建新主題。
    3. 將 theme傳遞給Theme.RegisterTheme方法。
    4. ApplicationThemeHelper.ApplicationThemeName屬性設(shè)置為主題名稱。

    C#:

    var palettetheme = Theme.CreateTheme(PredefinedThemePalettes.RedWine, Theme.Office2019White);
    Theme.RegisterTheme(palettetheme);
    ApplicationThemeHelper.ApplicationThemeName = palettetheme.Name;

    VB.NET:

    Dim palettetheme = Theme.CreateTheme(PredefinedThemePalettes.RedWine, Theme.Office2019White)
    Theme.RegisterTheme(palettetheme)
    ApplicationThemeHelper.ApplicationThemeName = palettetheme.Name
    將調(diào)色板應(yīng)用到觸摸主題
    1. 將主題的調(diào)色板和非觸摸版本傳遞給ThemeCreateTheme方法。
    2. 將;Touch后綴附加到應(yīng)用程序主題名稱并應(yīng)用該主題。

    下面的代碼示例將帶有TouchPalette的Office2019BlackTouch應(yīng)用于應(yīng)用程序:

    C#:

    var palette = new ThemePalette("TouchPalette");
    var theme = Theme.CreateTheme(palette, Theme.Office2019Black);
    Theme.RegisterTheme(theme);
    ApplicationThemeHelper.ApplicationThemeName = theme.Name + ";Touch";

    VB.NET:

    Dim palette = New ThemePalette("TouchPalette")
    Dim theme = Theme.CreateTheme(palette, Theme.Office2019Black)
    Theme.RegisterTheme(theme)
    ApplicationThemeHelper.ApplicationThemeName = theme.Name & ";Touch"
    在Ribbon Gallery顯示調(diào)色板

    您可以在 Ribbon Gallery中顯示預(yù)定義的調(diào)色板來允許用戶選擇調(diào)色板并將其應(yīng)用于當前主題:

    調(diào)色板

    1.引用 DevExpress.Mvvm.v23.1.dll程序集。

    2.在應(yīng)用程序啟動時調(diào)用ThemeRegisterPredefinedPaletteThemes方法來啟用這些調(diào)色板:

    C#:

    public partial class App : Application {
    protected override void OnStartup(StartupEventArgs e) {
    Theme.RegisterPredefinedPaletteThemes();
    base.OnStartup(e);
    }
    }

    VB.NET:

    Public Partial Class App
    Inherits Application
    Protected Overrides Sub OnStartup(ByVal e As StartupEventArgs)
    Theme.RegisterPredefinedPaletteThemes()
    MyBase.OnStartup(e)
    End Sub
    End Class

    3.將RibbonGalleryItemThemePaletteSelectorBehavior附加到一個RibbonGalleryBarItem上:

    <dxr:RibbonGalleryBarItem ... >
    <dxmvvm:Interaction.Behaviors>
    <dxr:RibbonGalleryItemThemePaletteSelectorBehavior />
    </dxmvvm:Interaction.Behaviors>
    </dxr:RibbonGalleryBarItem>

    使用Windows強調(diào)色和應(yīng)用模式

    將Win10Palette對象作為參數(shù)傳遞給任何ThemeCreateTheme方法來生成基于Win10Dark或Win10Light DevExpress主題的主題,這個調(diào)色板允許您獲得以下Windows主題設(shè)置,監(jiān)聽它們的變化,并將它們應(yīng)用到應(yīng)用程序中 :

    • 強調(diào)色
    • App模式(Dark/Light)[1]

    Win10Palette適用于Windows 10及更高版本。

    win10

    下面的代碼示例創(chuàng)建了一個基于Windows設(shè)置的顏色主題,并在啟動時將其應(yīng)用于應(yīng)用程序:

    C#:

    protected override void OnStartup(StartupEventArgs e) {
    var palette = new Win10Palette(true);
    var theme = Theme.CreateTheme(palette);
    Theme.RegisterTheme(theme);
    ApplicationThemeHelper.ApplicationThemeName = theme.Name;
    base.OnStartup(e);
    }

    VB.NET:

    Protected Overrides Sub OnStartup(ByVal e As StartupEventArgs)
    Dim palette = New Win10Palette()
    Dim theme = Theme.CreateTheme(palette)
    Theme.RegisterTheme(theme)
    ApplicationThemeHelper.ApplicationThemeName = theme.Name
    MyBase.OnStartup(e)
    End Sub
    管理調(diào)色板設(shè)置

    當創(chuàng)建Win10Palette實例時,您可以使用以下構(gòu)造函數(shù)參數(shù)來管理調(diào)色板設(shè)置:

    • accentColor

    指定調(diào)色板強調(diào)色,如果調(diào)色板找不到Windows強調(diào)色,則應(yīng)用程序的強調(diào)色設(shè)置為#FF0078D7。

    • listenAccentColorChanges

    指定是否獲取或忽略Windows強調(diào)色更改。

    如果為true,當用戶在Windows中更改強調(diào)色時,Win10Palette執(zhí)行以下操作:

    1. 獲取Windows強調(diào)色。
    2. 創(chuàng)建帶有強調(diào)色的主題。
    3. 將主題應(yīng)用于應(yīng)用程序。

    如果為false, Win10Palette將忽略Windows強調(diào)色的變化。

    • appMode

    指定應(yīng)用模式,如果調(diào)色板找不到Windows應(yīng)用程序模式,則將應(yīng)用程序應(yīng)用程序模式設(shè)置為Light。

    • listenAppModeChanges

    指定是獲取還是忽略Windows應(yīng)用程序模式更改。

    如果為true,當用戶在Windows中更改強調(diào)色時,Win10Palette執(zhí)行以下操作:

    1. 獲取Windows應(yīng)用程序模式。
    2. 創(chuàng)建一個基于Dark/Light的主題(取決于所選擇的Windows應(yīng)用程序模式)。
    3. 將主題應(yīng)用于應(yīng)用程序。

    如果為false, Win10Palette忽略Windows應(yīng)用程序模式更改。

    顯示W(wǎng)indows系統(tǒng)顏色主題

    DevExpress WPF控件包括System Color主題,這個主題采用Windows app mode和accent color設(shè)置,將其應(yīng)用到應(yīng)用程序中,并在用戶更改這些操作系統(tǒng)設(shè)置時更新應(yīng)用程序外觀,您可以在以下主題選擇器中顯示系統(tǒng)顏色主題:

    要在主題選擇器中顯示W(wǎng)indows 10系統(tǒng)顏色主題,請將繼承的ShowWin10SystemColorTheme屬性設(shè)置為true。

    自定義調(diào)色板

    有關(guān)如何創(chuàng)建自定義主題調(diào)色板的詳細信息,請參閱以下WPF主題設(shè)計器幫助主題:編輯調(diào)色板顏色。

    您可以通過以下方式導(dǎo)出調(diào)色板:

    • 作為自定義主題

    主題:在WPF主題設(shè)計器中構(gòu)建和導(dǎo)出新主題。

    • 作為一個類(.cs文件)

    主題:從WPF主題設(shè)計器導(dǎo)出調(diào)色板

    • 在代碼中重復(fù)對調(diào)色板所做的更改
    在代碼中編輯調(diào)色板

    提示:當您切換主題時,應(yīng)用程序不會卸載已加載的主題程序集。

    請參閱以下幫助主題來獲取可用調(diào)色板顏色的完整列表:調(diào)色板顏色列表。

    將自定義調(diào)色板應(yīng)用于應(yīng)用程序:

    1.在項目中引用Mono.cecil NuGet包。

    2.創(chuàng)建一個新的ThemePalette實例。

    C#:

    var custompalette = new ThemePalette("CustomPalette");

    VB.NET:

    Dim custompalette = New ThemePalette("CustomPalette")

    或基于預(yù)定義的調(diào)色板創(chuàng)建新的ThemePalette實例,在這種情況下,新的調(diào)色板繼承預(yù)定義的調(diào)色板的顏色:

    C#:

    var custompalette = new ThemePalette("CustomPalette", PredefinedThemePalettes.RedWine);

    VB.NET:

    Dim custompalette = new ThemePalette("CustomPalette", PredefinedThemePalettes.RedWine)

    3.使用themepaltte.setcolor方法來指定新的顏色:

    C#:

    custompalette.SetColor("Foreground", (Color)ColorConverter.ConvertFromString("#FFFF7200"));
    custompalette.SetColor("Backstage.Focused", Colors.White);

    VB.NET:

    custompalette.SetColor("Foreground", ColorConverter.ConvertFromString("#FF015C9F"))
    custompalette.SetColor("Foreground", Colors.White)

    4.將調(diào)色板和一個支持調(diào)色板的主題傳遞給Theme.CreateTheme方法來創(chuàng)建一個新主題:

    C#:

    var customtheme = Theme.CreateTheme(custompalette, Theme.Office2016ColorfulSE);

    VB.NET:

    Dim customtheme = Theme.CreateTheme(custompalette, Theme.Office2016ColorfulSE)

    5.將主題傳遞給Theme.RegisterTheme方法并設(shè)置ApplicationThemeHelper,ApplicationThemeName指定主題名稱用于將主題應(yīng)用到應(yīng)用程序:

    C#:

    Theme.RegisterTheme(customtheme);
    ApplicationThemeHelper.ApplicationThemeName = customtheme.Name;

    VB.NET:

    Theme.RegisterTheme(customtheme)
    ApplicationThemeHelper.ApplicationThemeName = customtheme.Name

    完整的代碼示例:

    C#:

    var custompalette = new ThemePalette("CustomPalette");
    custompalette.SetColor("Foreground", (Color)ColorConverter.ConvertFromString("#FFFF7200"));
    custompalette.SetColor("Backstage.Focused", Colors.White);
    var customtheme = Theme.CreateTheme(custompalette, Theme.Office2016ColorfulSE);
    Theme.RegisterTheme(customtheme);
    ApplicationThemeHelper.ApplicationThemeName = customtheme.Name;

    VB.NET:

    Dim custompalette = New ThemePalette("CustomPalette")
    custompalette.SetColor("Foreground", ColorConverter.ConvertFromString("#FF015C9F"))
    custompalette.SetColor("Backstage.Focused", Colors.White)
    Dim customtheme = Theme.CreateTheme(custompalette, Theme.Office2016ColorfulSE)
    Theme.RegisterTheme(customtheme)
    ApplicationThemeHelper.ApplicationThemeName = customtheme.Name

    限制

    在使用單文件部署的 .NET 5應(yīng)用程序運行時更改主題。

    必須將DevExpress WPF主題程序集提取到磁盤。當您發(fā)布一個 .NET 5用程序時(PublishSingleFile為true),在項目文件中設(shè)置IncludeAllContentForSelfExtract選項為true,這將允許用戶在運行時應(yīng)用調(diào)色板。

    <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net5.0-windows</TargetFramework>
    <UseWPF>true</UseWPF>
    <Nullable>enable</Nullable>
    <PublishSingleFile>true</PublishSingleFile>
    <IncludeAllContentForSelfExtract>true</IncludeAllContentForSelfExtract>
    </PropertyGroup>
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    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); })();