Как установить скин на XtraUserControl в Windows Form?
У меня есть простая форма Windows. В него я встроил ChildXtraUserControl, который является производным от XtraUserControl (DevEx v10.1).
Я бы хотел добавить SkinXtraUserControl в "Office 2010 Blue", и я ожидаю, что он будет выглядеть голубоватым при запуске формы. Я пробовал это двумя разными способами, но не могу заставить его работать.
Попытка 1: установите LookAndFeel в ChildXtraUserControl, установите ChildXtraUserControl в панель форм Windows в форме
Когда я запускаю это, я вижу только панель, которую я окрашивал в бледно-желтый цвет.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
var devExUserControl = new DevExpressUserControl {Dock = DockStyle.Fill};
panel1.Controls.Add(devExUserControl);
}
}
public partial class ChildXtraUserControl : XtraUserControl
{
public ChildXtraUserControl()
{
InitializeComponent();
IntializeSkin();
}
private void IntializeSkin()
{
LookAndFeel.UseDefaultLookAndFeel = false;
LookAndFeel.UseWindowsXPTheme = false;
LookAndFeel.Style = LookAndFeelStyle.Skin;
LookAndFeel.SkinName = "Office 2010 Blue";
}
}
Попытка 2: я прочитал в Центре поддержки DevEx, что ChildXtraUserControl может находиться в DevExpress PanelControl, а LookAndFeel установлен на PanelControl
Как и раньше, я вижу только бледно-желтый PanelControl. Пост кажется, что это было для другой версии DevEx, но я думал, что это стоило того.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
panelControl1.LookAndFeel.UseDefaultLookAndFeel = false;
panelControl1.LookAndFeel.UseWindowsXPTheme = false;
panelControl1.LookAndFeel.Style = LookAndFeelStyle.Skin;
panelControl1.LookAndFeel.SkinName = "Office 2010 Blue";
var devExUserControl = new ChildXtraUserControl { Dock = DockStyle.Fill };
panelControl1.Controls.Add(devExUserControl);
}
}
public partial class ChildXtraUserControl : XtraUserControl
{
public ChildXtraUserControl()
{
InitializeComponent();
}
}
У кого-нибудь есть идеи, что я делаю не так? Заранее спасибо.
1 ответ
Мне удалось заставить это работать, используя второй подход и изменив конструктор Form1, как показано.
public Form1()
{
InitializeComponent();
// add this line
DevExpress.UserSkins.OfficeSkins.Register();
panelControl1.LookAndFeel.UseDefaultLookAndFeel = false;
panelControl1.LookAndFeel.UseWindowsXPTheme = false;
panelControl1.LookAndFeel.Style = LookAndFeelStyle.Skin;
panelControl1.LookAndFeel.SkinName = "Office 2010 Blue";
var childXtraUserControl = new ChildXtraUserControl {Dock = DockStyle.Fill};
panelControl1.Controls.Add(childXtraUserControl);
}