Skins

DevExpress WinForms控件包括许多现成的绘画主题(或外观),用于更改DevExpress表单和控件的外观。您可以通过运行WinForms演示应用程序并使用外观选择器在可用主题之间进行切换来查看不同的外观。

Vector Themes

矢量皮肤将矢量图像用于所有UI元素,以提高在高分辨率设备上的显示质量。

  • Basic

  • Bezier

  • Office 2019 Black

  • Office 2019 Colorful

  • Office 2019 Dark Gray

  • Office 2019 White

每个vector ski可以具有作为肤色主题的多个调色板(色板)。RibbonControl提供了“ Skin Palette Gallery”(皮肤调色板库)项,允许用户在运行时切换调色板。

以下代码说明了如何修改默认调色板和/或创建其他调色板:

//obtain a vector skin
var commonSkin = CommonSkins.GetSkin(LookAndFeel);
//create a new palette
SvgPalette svgPalette = new SvgPalette();
//set up palette colors
svgPalette.Colors.Add(new SvgColor("Paint", Color.FromArgb(242, 242, 242)));
svgPalette.Colors.Add(new SvgColor("Paint High", Color.FromArgb(255, 255, 255)));
svgPalette.Colors.Add(new SvgColor("Paint Shadow", Color.FromArgb(222, 222, 222)));
svgPalette.Colors.Add(new SvgColor("Brush", Color.FromArgb(80, 80, 80)));
svgPalette.Colors.Add(new SvgColor("Brush Light", Color.FromArgb(150, 150, 150)));
svgPalette.Colors.Add(new SvgColor("Brush High", Color.FromArgb(80, 80, 80)));
svgPalette.Colors.Add(new SvgColor("Brush Major", Color.FromArgb(180, 180, 180)));
svgPalette.Colors.Add(new SvgColor("Brush Minor", Color.FromArgb(210, 210, 210)));
svgPalette.Colors.Add(new SvgColor("Accent Paint", Color.FromArgb(23, 107, 209)));
svgPalette.Colors.Add(new SvgColor("Accent Paint Light", Color.FromArgb(191, 224, 255)));
svgPalette.Colors.Add(new SvgColor("Accent Brush", Color.FromArgb(255, 255, 255)));
svgPalette.Colors.Add(new SvgColor("Accent Brush Light", Color.FromArgb(81, 148, 224)));
svgPalette.Colors.Add(new SvgColor("Key Paint", Color.FromArgb(71, 71, 71)));
svgPalette.Colors.Add(new SvgColor("Key Brush", Color.FromArgb(255, 255, 255)));
svgPalette.Colors.Add(new SvgColor("Key Brush Light", Color.FromArgb(150, 150, 150)));
svgPalette.Colors.Add(new SvgColor("Red", Color.FromArgb(226, 54, 66)));
svgPalette.Colors.Add(new SvgColor("Green", Color.FromArgb(60, 146, 92)));
svgPalette.Colors.Add(new SvgColor("Blue", Color.FromArgb(58, 116, 194)));
svgPalette.Colors.Add(new SvgColor("Yellow", Color.FromArgb(252, 169, 10)));
svgPalette.Colors.Add(new SvgColor("Black", Color.FromArgb(122, 122, 122)));
svgPalette.Colors.Add(new SvgColor("Gray", Color.FromArgb(190, 190, 190)));
svgPalette.Colors.Add(new SvgColor("White", Color.FromArgb(255, 255, 255)));
//replace the default color palette with a custom one
commonSkin.SvgPalettes[Skin.DefaultSkinPaletteName].CustomPalette = svgPalette;
LookAndFeelHelper.ForceDefaultLookAndFeelChanged();
//or
//add a new swatch
commonSkin.CustomSvgPalettes.Add(new SvgPaletteKey(commonSkin.CustomSvgPalettes.Count, "PALETTE_NAME"), svgPalette);

Basic Raster Skin Set

基本栅格皮肤设置

下面的库演示了默认外观,它们是DevExpress.Utils库的一部分(所有使用DevExpress WinForms控件的项目都需要该库):

  • DevExpress Style

  • DevExpress Dark Style

  • Office 2016 Colorful

  • Office 2016 Dark

  • Office 2016 Black

  • Office 2013 White (skin name:Office 2013)

  • Office 2013 Dark Gray

  • Office 2013 Light Gray

  • Office 2010 Blue

  • Office 2010 Black

  • Office 2010 Silver

  • Visual Studio 2013 Blue

  • Visual Studio 2013 Dark

  • Visual Studio 2013 Light

  • Seven Classic

  • Visual Studio 2010 (Skin name: VS2010)

Additional Raster Themes

DevExpress.BonusSkins程序集添加到您的项目中,以使用上述基本集中未包含的其他外观。

  • Black

  • Blue

  • Caramel

Theme Skins

  • Pumpkin

  • Springtime

  • Summer (Skin name: Summer 2008)

  • Valentine

  • Xmas (Blue) (Skin name: Xmas 2008 Blue)

  • McSkin

  • Blueprint

  • Whiteprint

To access bonus skins at design time, select Register BonusSkins from the DefaultLookAndFeel component's smart tag. If this command is not available, then the bonus themes have already been registered. Certain DevExpress Project Templates automatically register bonus skins.

要在代码中注册额外的外观,请首先确保您的项目引用了DevExpress.BonusSkins程序集。然后,在运行主应用程序表单之前,调用DevExpress.UserSkins.BonusSkins.Register方法。

namespace WindowsFormsApplication1 {
static class Program {
[STAThread]
static void Main() {
DevExpress.UserSkins.BonusSkins.Register(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}

一旦注册,您就可以应用奖励皮肤。以下代码将南瓜奖励外观设置为应用程序的默认外观:

private void Form1_Load(object sender, EventArgs e) {
DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle("Pumpkin");
}

将主题应用于整个应用程序和单个控件

调用DevExpress项目设置页面,然后选择所需的主题以将其应用于整个应用程序。

或者,调用UserLookAndFeel.Default静态对象的UserLookAndFeel.SetSkinStyle方法。

using DevExpress.LookAndFeel;
// ...
UserLookAndFeel.Default.SetSkinStyle("VS2010");

要在代码中应用矢量外观,请使用UserLookAndFeel.SetSkinStyle方法重载,该重载将SkinSvgPalette对象作为参数。此参数允许您将预定义的调色板(色板)应用于皮肤。

this.LookAndFeel.SetSkinStyle(SkinSvgPalette.Bezier.LeafRustle);

Form Title Bar and Border Skinning

默认情况下,DevExpress表单消息框的皮肤带有标题栏和边框。

可以使用兼容性选项(请参阅版本兼容性:默认属性值)或WindowsFormsSettings.DisableFormSkins方法来禁用默认标题栏皮肤。

相关API

为最终用户提供运行时皮肤选择器UI

DevExpress 工具栏和菜单以及功能区提供了预定义的皮肤选择器项目-SkinBarSubItemSkinRibbonGalleryBarItem-它们会自动填充可用的皮肤项目,并允许最终用户随时切换应用程序主题。

SkinDropDownButtonItemSkinPaletteRibbonGalleryBarItem皮肤选择提供附加功能。

SkinDropDownButtonItem显示在下拉列表中可用的皮肤。与SkinBarSubItem不同,SkinDropDownButtonItem允许您通过名称搜索特定皮肤并隐藏不需要的皮肤组。

所述SkinPaletteRibbonGalleryBarItem选择显示色板代替皮肤。如果传统的栅格皮肤当前处于活动状态,则将其隐藏。请注意,此项目仅在功能区控件中可用,并且不支持Bar Manager

您可以在设计时使用功能区和工具栏智能标记创建所有这些外观选择器。

要更改外观选择器的项目标题和图标,请处理静态DevExpress.XtraBars.Helpers.SkinHelper.CreateGalleryItem事件。

SkinHelper.CreateGalleryItem += (s, e) => {
if(e.SkinName.Equals(MySkinName)) {
e.GalleryItem.Image = e.UseLargeIcons ? MyLargeIcon : MySmallIcon;
e.GalleryItem.HoverImage = MyLargeIcon;
e.GalleryItem.Caption = "Glacier";
}
};

您还可以手动获取可用皮肤样式的列表,并创建一个自定义UI元素以在它们之间进行切换。请参阅以下主题,以了解如何使用内置选择器并创建自定义选择器:

Adjust Skin Colors

DevExpress外观允许您修改其默认调色板。例如,您可以调整Office 2016 Colorful皮肤的默认颜色(基于MS Outlook颜色)以匹配其他MS Office应用程序的调色板。

您可以使用预定义的“混色器”对话框来调整DevExpress WinForms演示中的皮肤颜色,如下所示。

使用以下代码在您的应用程序中调用此对话框:

using DevExpress.XtraEditors.ColorWheel;
//..
ColorWheelForm cwForm = new ColorWheelForm();
cwForm.Show();

您还可以在设计时或在代码中自定义整个应用程序的外观(使用DefaultLookAndFeel组件)或特定控件的外观调色板(通过其LookAndFeel属性)。

Member Description
UserLookAndFeel.SkinMaskColor 指定原色或背景色。
UserLookAndFeel.SkinMaskColor2 指定突出显示颜色。
UserLookAndFeel.SetSkinMaskColors 允许您在一个呼叫中同时设置两种颜色。

您可以在设计时访问这些属性。

调用下面的方法来调整代码中的皮肤调色板。

UserLookAndFeel.Default.SetSkinMaskColors(Color.FromArgb(255, 60, 245, 60), Color.White);

外观是一组位图,字体和对齐方式设置,这些设置确定如何在所有可能的状态(正常,热跟踪,选定等)下绘制控件元素。DevExpress设计人员使用外观编辑器应用程序将外观属性与各个控件相关联,并将此信息编译到前面提到的外观组件中。您可以从Visual Studio 的DevExpress菜单访问“ 皮肤编辑器”应用程序,以修改皮肤以适合特定的公司样式,或将皮肤重新打包为轻量级DLL。

the Toolbar and Menu Skin Selector

您可以在应用程序的工具栏中添加外观选择器,以便最终用户可以在运行时选择外观。

添加皮肤选择器

Bars 提供了SkinBarSubItem对象,可在运行时切换应用程序的外观。该项目是一个子菜单,显示流行皮肤的列表以及“ Bonus Skins”“ Theme Skins”以访问其他子菜单。

在设计时,单击“ [添加]”,然后从下拉菜单中选择“皮肤菜单(SkinBarSubItem)”,以向工具栏添加子菜单。

添加所需的外观项目后,无需手动实现其功能。单击菜单项以自动应用相应的皮肤。

SkinBarSubItem目的是一种自动填充BarSubItem对象。要修改此菜单,请通过BarCustomContainerItem.ItemLinks集合遍历所有项目,并将其自定义为常规的Bar Item Links。以下文档部分说明了如何修改此外观菜单。

请注意,代表各个外观的链接是BarButtonItemLink类对象。子项目(“奖励皮肤”“主题皮肤”)是BarSubItemLink对象。

Hide Skins and Skin Groups

您可以手动隐藏外观项目或子组。

  1. 创建要排除的皮肤名称的字符串数组。您可以使用全名(例如“ Office 2016 Colorful”)或部分名称(例如“ 2007”)。
string[] skinsToHide = { "Seven Classic", "DevExpress Style", "Dark", "2010", "2007", "Sharp" };
  1. 创建一个自定义方法,该方法将遍历bar外观子项目并删除与数组中的值匹配的外观。同样,您可以隐藏带有奖励皮肤的子菜单。
private void HideSkins(string[] skinsToHide) {
for(var i = 0; i < skinBarSubItem1.ItemLinks.Count; i++) {
//Check regular button items
if(skinBarSubItem1.ItemLinks[i] is BarButtonItemLink) {
var item = skinBarSubItem1.ItemLinks[i];
foreach(var skin in skinsToHide) {
if(item.Caption.Contains(skin)) {
item.Visible = false;
}
}
}
//Check buttons nested in the "Bonus Skins" sub-menu
if(skinBarSubItem1.ItemLinks[i] is BarSubItemLink && skinBarSubItem1.ItemLinks[i].Caption == "Bonus Skins") {
BarSubItemLink group = (BarSubItemLink)skinBarSubItem1.ItemLinks[i];
for(var j = 0; j < group.Item.ItemLinks.Count; j++) {
var item = group.Item.ItemLinks[j];
foreach(var skin in skinsToHide) {
if(item.Caption.Contains(skin)) {
item.Visible = false;
}
}
}
}
//Hide theme skins
if(skinBarSubItem1.ItemLinks[i] is BarSubItemLink && skinBarSubItem1.ItemLinks[i].Caption == "Theme Skins") {
skinBarSubItem1.ItemLinks[i].Visible = false;
}
}
}
  1. Load事件处理程序中调用您的方法,以确保外观子项目已初始化。
void ucBar_Load(object sender,EventArgs e){
HideSkins(skinsToHide);
}

Change Captions and Icons Manually

遍历BarCustomContainerItem.ItemLinks集合,以手动更改外观子项目中的项目标题或字形。这类似于用于隐藏特定皮肤和皮肤组的过程。

void ucBar_Load(object sender, EventArgs e) {
RenameSkins();
}
private void RenameSkins() {
for(var i = 0; i < skinBarSubItem1.ItemLinks.Count; i++) {
if(skinBarSubItem1.ItemLinks[i].Caption == "DevExpress Style") {
BarButtonItem parentItem = (BarButtonItem)skinBarSubItem1.ItemLinks[i].Item;
parentItem.Caption = "Default Skin";
parentItem.ImageUri.Uri = "Apply";
}
}
}

自定义Ribbon Gallery 皮肤选择器

本文介绍了如何允许最终用户在运行时使用嵌入式工具栏和菜单皮肤选择器选择皮肤。

添加功能区库皮肤选择器

A Ribbon 提供了一种 In-Ribbon gallery (SkinRibbonGalleryBarItem objects) 以允许最终用户能够改变应用程序的外观在运行时。在此库中,皮肤项目分为"Standard Skins"*, "Bonus Skins" and "Theme Skins" 类别。

要添加功能区皮肤库,请右键单击RibbonPageGroup,然后选择“添加皮肤库(SkinRibbonGalleryBarItem)”

添加所需的外观项目后,无需手动实现其功能。单击图库项目以自动应用相应的皮肤。

由于功能区外观库是自动填充的内部功能区库,因此您可以轻松访问其项目和组以对其进行修改–如下所述。

Hide Specific Items And Groups

  1. 创建一个包含不需要的皮肤名称的字符串数组。这些名称可以是全名(例如“ Office 2016 Colorful”)或部分名(例如“ 2007”)。
string[] skinsToHide = { "Seven Classic", "DevExpress Style", "Dark", "2010", "2007", "Sharp" };
  1. 定义一个自定义方法,该方法将遍历皮肤项并隐藏不需要的项。
private void HideSkins(string[] skinsToHide) {
for(var i = 0; i < skinRibbonGalleryBarItem1.Gallery.Groups.Count; i++) {
var group = skinRibbonGalleryBarItem1.Gallery.Groups[i];
if(group == null) {
continue;
}
for(var j = 0; j < group.Items.Count; j++) {
var item = group.Items[j];
if(item == null) {
continue;
}
foreach(var skin in skinsToHide) {
if(item.Caption.Contains(skin)) {
item.Visible = false;
}
}
}
}
}
  1. 使用窗体或UserControl Load事件处理程序来调用您的方法。
this.Load += ucRibbon_Load;

void ucRibbon_Load(object sender, EventArgs e) {
HideSkins(skinsToHide);
}

要隐藏整个皮肤组,请使用下面的代码示例。

void ucRibbon_Load(object sender, EventArgs e) {
skinRibbonGalleryBarItem1.Gallery.Groups.Remove(skinRibbonGalleryBarItem1.Gallery.Groups.OfType<GalleryItemGroup>()
.First(x => String.Equals(x.Caption, "Bonus Skins")));
}

删除项目分组

要删除项目分组,请添加一个新的图库组,并在其中添加所有现有的图库项目。然后,您可以删除除新的自定义组以外的所有画廊组,如下面的代码示例所示。

void ucRibbon_Load(object sender, EventArgs e) {
RemoveGrouping();
} void RemoveGrouping() {
GalleryItemGroup group = new GalleryItemGroup() { Caption = "Available Skins" };
skinRibbonGalleryBarItem1.Gallery.Groups.Insert(0, group);
foreach(var item in skinRibbonGalleryBarItem1.Gallery.GetAllItems()) {
skinRibbonGalleryBarItem1.Gallery.Groups[0].Items.Add(item);
}
while(skinRibbonGalleryBarItem1.Gallery.Groups.Count > 1)
skinRibbonGalleryBarItem1.Gallery.Groups.Remove(skinRibbonGalleryBarItem1.Gallery.Groups.Last());
}

手动更改标题和图标

要更改功能区外观库中项目的标题和字形,请遍历库项目并修改以下属性:

void ucRibbon_Load(object sender, EventArgs e) {
CustomizeItems(skinRibbonGalleryBarItem1);
}
void CustomizeItems(SkinRibbonGalleryBarItem target) {
foreach(var item in target.Gallery.GetAllItems()) {
if(item.Caption == "DevExpress Dark Style") {
item.Caption = item.Hint = "Default Skin";
item.Description = "The default skin";
// We recommend that you use vector images.
item.ImageOptions.SvgImage = SvgImage.FromResources("DXApplication1.Resources.Driving.svg", typeof(Form1).Assembly);
// The vector image has priority over the raster image.
// To assign a raster image, nullify the default vector image.
item.ImageOptions.SvgImage = null;
item.ImageOptions.Image = DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/miscellaneous/colors_16x16.png");
item.ImageOptions.HoverImage = DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/miscellaneous/colors_32x32.png");
}
}
}

本地化Bar 和 Ribbon Skin

可以利用Localizer对象自定义外观菜单,而不必遍历每个Bar外观子菜单项和Ribbon外观库项目容器来手动修改项目。这种方法允许您一次自定义所有现有的条形子菜单和功能区画廊中的皮肤项目。

  1. 创建 BarLocalizer 类的后代,并覆盖其虚拟 XtraLocalizer.GetLocalizedString 方法.
public class MyBarLocalizer : BarLocalizer {
public override string GetLocalizedString(BarString id) {
if(id == BarString.SkinCaptions) {
string defaultSkinCaptions = base.GetLocalizedString(id);
string newSkinCaptions = defaultSkinCaptions.Replace("|DevExpress Style|", "|Default Skin|");
newSkinCaptions = newSkinCaptions.Replace("|DevExpress Dark Style|", "|Default Dark Skin|");
return newSkinCaptions;
}
return base.GetLocalizedString(id);
}
}
  1. 使用静态 BarLocalizer.Active 属性将您的自定义类的新实例设置为当前的bar本地化器。在调用Application.Run方法之前,在Program类中调用此方法,如下所示。
static class Program {
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main() {
BonusSkins.Register();
SkinManager.EnableFormSkins();
BarLocalizer.Active = new MyBarLocalizer();
Application.Run(new Form1());
}
}

结果

如果在条形外观子项目之后分配了自定义本地化程序,或者如果功能区外观库已经初始化(例如,在Load事件上),则外观项目将显示默认标题。在这种情况下,请调用静态SkinHelper.InitSkinPopupMenuSkinHelpber.InitSkinGallery方法以再次初始化外观项目并激活定位器。

void ucBar_Load(object sender, EventArgs e) {
BarLocalizer.Active = new MyBarLocalizer();
//refresh bar sub-item links
skinBarSubItem1.ClearLinks();
SkinHelper.InitSkinPopupMenu(skinBarSubItem1);
//refresh Ribbon gallery links
SkinHelper.InitSkinGallery(skinRibbonGalleryBarItem1);
}

Bonus and Custom Skin Registration

您可以将皮肤库添加到项目中,并添加特定的代码以注册该库以在运行时使用这些皮肤(例如,DevExpress.BonusSkins.19.2.dll或通过WinForms皮肤编辑器实用程序创建的库)。通常,应在主表单开始之前调用注册码。

Register DevExpress.BonusSkins Library

在应用程序启动时,调用DevExpress.UserSkins.BonusSkins.Register方法。

[STAThread]
static void Main() {
// Skin registration.
DevExpress.UserSkins.BonusSkins.Register();
Application.Run(new Form1());
}

Register Custom Skins

您可以使用WinForms皮肤编辑器实用程序创建自定义皮肤。请参阅导出和应用自定义皮肤以了解如何获取自定义皮肤库的注册代码。

以下示例显示了在应用程序启动时如何注册自定义SkinProject1库:

[STAThread]
static void Main() {
Assembly asm = typeof(DevExpress.UserSkins.SkinProject1).Assembly;
DevExpress.Skins.SkinManager.Default.RegisterAssembly(asm);
Application.Run(new Form1());
} public class SkinRegistration : Component {
public SkinRegistration() {
DevExpress.Skins.SkinManager.Default.RegisterAssembly(typeof(DevExpress.UserSkins.SkinProject1).Assembly);
}
}

添加此代码后,重新生成项目,并将SkinRegistration组件从Visual Studio工具箱添加到主应用程序窗体。

注册自定义外观以用于初始屏幕和等待表单

使用SplashScreenManager组件创建的初始屏幕和等待表单在单独的线程中运行。请注意,在主屏幕中注册的自定义皮肤的信息在启动屏幕线程中不可用,直到您调用SplashScreenManager.RegisterUserSkins方法。

SplashScreenManager.RegisterUserSkins(typeof(DevExpress.UserSkins.SkinProject1).Assembly);
splashScreenManager1.ShowWaitForm();

Design-Time Skinning

在设计时,所有DevExpress控件均使用默认的“ DevExpress样式”外观绘制-除非您使用DefaultLookAndFeel组件应用特定外观。

在Visual Studio “ DevExpress | WinForms控件” 菜单中,单击“更改设计时设置...”以更改默认的设计时外观。在调用的对话框中,选择所需的外观并选中“启用设计时表单外观”

此设置更改DefaultDesignTimeLookAndFeel注册表项,该注册表项位于“ HKEY_LOCAL_MACHINE \ SOFTWARE \ Developer Express”节点(对于64位Windows,为“ HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Developer Express”节点)。选定的外观将应用于没有由DefaultLookAndFeel组件明确设置的所有WinForms项目。

DevExpress Skins<2>的更多相关文章

  1. Devexpress -换皮肤

    一.在项目下新建RibbonForm  命名为:useSkin 二.添加引用DevExpress.OfficeSkins      DevExpress.UserSkins.BonusSkins 三. ...

  2. <转>DevExpress使用经验总结

    DevExpress是一个比较有名的界面控件套件,提供了一系列的界面控件套件的DotNet界面控件.本文主要介绍我在使用 DevExpress控件过程中,遇到或者发现的一些问题解决方案,或者也可以所示 ...

  3. DevExpress中透明玻璃效果

    Aero玻璃效果 下图左是DevExpress无玻璃效果,图右是Windows自带玻璃效果. Windows Aero 是从 Windows Vista 开始使用的新型用户界面,透明玻璃感让用户一眼贯 ...

  4. DevExpress控件使用经验总结- GridView列表行号显示操作

    DevExpress是一个比较有名的界面控件套件,提供了一系列的界面控件套件的DotNet界面控件.本文主要介绍我在使用DevExpress控件过程中,遇到或者发现的一些问题解决方案,或者也可以所示一 ...

  5. DevExpress控件使用小结 z

    .TextEditor(barEditItem)取文本 string editValue = barEditItem1.EditValue.ToString(); //错误,返回null string ...

  6. DevExpress LookUpEdit 下拉框基本操作

    <span style="font-size:14px;"> ArrayList list = new ArrayList(); //遍历皮肤,放到列表中 foreac ...

  7. DevExpress 12.1 换肤 超级简单的方法(2013-11-5版)

    本例子是按照DevExpress 12.1 版本 进行演示.请先准备好DevExpress.BonusSkins.v12.1.dll 和DevExpress.Utils.v12.1.dll 1.首先添 ...

  8. 浅谈DevExpress<一>:换肤

    最近要用到devExpress,一句话,很好很强大,比起vs自带的winform界面,种类和花样要多了不少,然而,强力的功能带来了庞大的信息量,所以我打算通过一些小模块来和大家一起对它进行探讨和研究. ...

  9. DevExpress 学习使用之 Skin

    新建了一个XtraForm,设置属性里的皮肤属性却不能实现,群里朋友发过来一个简单的换肤项目 1. 先觉条件似乎是窗体应该继承“public partial class XtraForm1 : Dev ...

随机推荐

  1. 基于webpack实现多html页面开发框架三 图片等文件路径替换、并输出到打包目录

    一.解决什么问题      1.图片路径替换.并输出到打包目录      2.输出目录清理 二.需要安装的包 file-loader:html.css中图片路径替换,图片输出到打包目录:命令:npm ...

  2. 深度研究:回归模型评价指标R2_score

    回归模型的性能的评价指标主要有:RMSE(平方根误差).MAE(平均绝对误差).MSE(平均平方误差).R2_score.但是当量纲不同时,RMSE.MAE.MSE难以衡量模型效果好坏.这就需要用到R ...

  3. python数据处理----常用数据文件的处理

    数据处理时,常用数据存储形式主要有:CSV.JSON.XML.EXCEL.数据库存储. 一.CSV文件 csv文件简介 CSV是一种通用的.相对简单的文件格式,被用户.商业和科学广泛应用.最广泛的应用 ...

  4. 浅议Grpc传输机制和WCF中的回调机制的代码迁移

    浅议Grpc传输机制和WCF中的回调机制的代码迁移 一.引子 如您所知,gRPC是目前比较常见的rpc框架,可以方便的作为服务与服务之间的通信基础设施,为构建微服务体系提供非常强有力的支持. 而基于. ...

  5. hadoop format 重新格式化

    前文:如果格式化完之后,使用jps命令发现进程都已经启动,但是使用web页面打不开hadoop的网页,可能原因就是防火墙没关或者是哪个配置过程配错了. 1.关闭防火墙 一般最好是关闭防火墙比较关闭. ...

  6. Undefined symbols for architecture x86_64"_OBJC_CLASS_$_QQApiInterface 怎么搞

    今天上午报了一个这样的错误 解决办法 如此如此 ~~ 然后编译 看看报的什么错误 还是不行的话就重新导入三方库 添加依赖库 结果build success

  7. 调用rest api杀死yarn上的应用

    调用rest api杀死yarn上的应用 调用yarn reat api,通过app name 获取application id public static String getApplication ...

  8. [TimLinux] JavaScript AJAX接收到的数据转换为JSON格式

    1. 接收数据 AJAX接收数据是通过xhr.responseText属性,这是一个属性不是一个方法,这个属性得到的数据为字符串. 2. 字符串内容 当服务器发送的是一个JsonResponse({' ...

  9. flink基本原理

    一.简介 开源流式处理系统在不断地发展,从一开始只关注低延迟指标到现在兼顾延迟.吞吐与结果准确性,在发展过程中解决了很多问题,编程API的易用性也在不断地提高.本文介绍一下 Flink 中的核心概念, ...

  10. HihoCoder1449 后缀自动机三·重复旋律6

    描述 小Hi平时的一大兴趣爱好就是演奏钢琴.我们知道一个音乐旋律被表示为一段数构成的数列. 现在小Hi想知道一部作品中所有长度为K的旋律中出现次数最多的旋律的出现次数.但是K不是固定的,小Hi想知道对 ...