如何在我的 IDesigner 中更改分隔符颜色?
How to change separator color in my IDesigner?
我刚刚用设计器控件创建了我自己的库,从 System.ComponentModel.Design reference.So 我的应用程序中使用了一个 winform 设计器,就像 vs.But 我不喜欢那个白色的分隔符颜色,我怎么能改变它,因为我没有找到分隔符 color.I 的 属性 知道可以将分隔符颜色更改为灰色,因为 visual studio 分隔符是灰色的.. .
图片:第一张图片是设计器中的 visual studio 分隔符,
第二张图片是我的 IDesignerHost 设计器中难看的白色分隔符。
我试图在 IDesigner 和 IDesignerHost 中找到一些 属性 的分隔符颜色,但我没有找到..请帮助我..
我的图书馆 IDesignerHost
是如何工作的:
//surface is interface of my implemented designer,so i can get it as control
//to change basic properties,like backcolor,font,etc...
//but also i can get it as IDesigner and IDesignerHost
//but how to change a separator color?
DesignSurface surface = new DesignSurface();
Control view = surface.GetView(); //returns control or IDesigner/IDesignerHost
view.BackColor = Color.FromArgb(30, 30, 30);
您可以从 DesignSurface
的视图的 Controls
集合中获取拆分器。只要组件托盘中有组件,就会添加拆分器。所以你可以使用这段代码来改变分离器的颜色。
例子
您可以使用以下代码进行尝试。只需确保您已添加对 System.Design
程序集的引用并使用 System.Linq
和 System.ComponentModel.Design
命名空间:
var surface = new DesignSurface();
var host = (IDesignerHost)surface.GetService(typeof(IDesignerHost));
surface.BeginLoad(typeof(Form));
var root = (Form)host.RootComponent;
host.CreateComponent(typeof(BindingSource), "bindingSource1");
var view = (Control)surface.View;
view.Dock = DockStyle.Fill;
view.BackColor = Color.White;
var splitter = view.Controls.OfType<Splitter>().FirstOrDefault();
if (splitter != null)
splitter.BackColor = Color.Red;
else
{
view.ControlAdded += (obj, args) =>
{
if (args.Control is Splitter)
args.Control.BackColor = Color.Red;
};
}
this.Controls.Add(view);
你会得到这样的结果:
我刚刚用设计器控件创建了我自己的库,从 System.ComponentModel.Design reference.So 我的应用程序中使用了一个 winform 设计器,就像 vs.But 我不喜欢那个白色的分隔符颜色,我怎么能改变它,因为我没有找到分隔符 color.I 的 属性 知道可以将分隔符颜色更改为灰色,因为 visual studio 分隔符是灰色的.. .
图片:第一张图片是设计器中的 visual studio 分隔符,
第二张图片是我的 IDesignerHost 设计器中难看的白色分隔符。
我的图书馆 IDesignerHost
是如何工作的:
//surface is interface of my implemented designer,so i can get it as control
//to change basic properties,like backcolor,font,etc...
//but also i can get it as IDesigner and IDesignerHost
//but how to change a separator color?
DesignSurface surface = new DesignSurface();
Control view = surface.GetView(); //returns control or IDesigner/IDesignerHost
view.BackColor = Color.FromArgb(30, 30, 30);
您可以从 DesignSurface
的视图的 Controls
集合中获取拆分器。只要组件托盘中有组件,就会添加拆分器。所以你可以使用这段代码来改变分离器的颜色。
例子
您可以使用以下代码进行尝试。只需确保您已添加对 System.Design
程序集的引用并使用 System.Linq
和 System.ComponentModel.Design
命名空间:
var surface = new DesignSurface();
var host = (IDesignerHost)surface.GetService(typeof(IDesignerHost));
surface.BeginLoad(typeof(Form));
var root = (Form)host.RootComponent;
host.CreateComponent(typeof(BindingSource), "bindingSource1");
var view = (Control)surface.View;
view.Dock = DockStyle.Fill;
view.BackColor = Color.White;
var splitter = view.Controls.OfType<Splitter>().FirstOrDefault();
if (splitter != null)
splitter.BackColor = Color.Red;
else
{
view.ControlAdded += (obj, args) =>
{
if (args.Control is Splitter)
args.Control.BackColor = Color.Red;
};
}
this.Controls.Add(view);
你会得到这样的结果: