Source/Ribbon/DesignerSupport.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using DevComponents.DotNetBar.Design;

namespace DevComponents.DotNetBar
{
	/// <summary>
	/// Summary description for DesignerSupport.
	/// </summary>
	internal class DesignerSupport
	{
		public static ItemContainer CreateItemContainer(IDesignerServices designer, BaseItem parent, eOrientation containerOrientation)
		{
			IDesignerHost dh=designer.GetService(typeof(IDesignerHost)) as IDesignerHost;
			IComponentChangeService cc=designer.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
			
			if(dh==null || parent==null || cc==null)
				return null;

			ItemContainer c=null;

			DesignerTransaction trans=dh.CreateTransaction("New DotNetBar Item Container");
			try
			{
				c=dh.CreateComponent(typeof(ItemContainer)) as ItemContainer;
				TypeDescriptor.GetProperties(c)["LayoutOrientation"].SetValue(c,containerOrientation);
				cc.OnComponentChanging(parent,TypeDescriptor.GetProperties(c)["SubItems"]);
				parent.SubItems.Add(c);
				cc.OnComponentChanged(parent,TypeDescriptor.GetProperties(c)["SubItems"],null,null);
			}
			finally
			{
				if(!trans.Canceled)
					trans.Commit();
			}

			return c;
        }

        public static RibbonTabItemGroup CreateRibbonTabItemGroup(RibbonStrip strip, IServiceProvider provider)
		{
			IDesignerHost dh=provider.GetService(typeof(IDesignerHost)) as IDesignerHost;
			IComponentChangeService cc=provider.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
			if(dh==null || cc==null) return null;
            
			DesignerTransaction trans=dh.CreateTransaction("New RibbonTabItemGroup");
			RibbonTabItemGroup group=null;
			try
			{
				group=dh.CreateComponent(typeof(RibbonTabItemGroup)) as RibbonTabItemGroup;
				cc.OnComponentChanging(strip,TypeDescriptor.GetProperties(strip)["TabGroups"]);
				strip.TabGroups.Add(group);				
				cc.OnComponentChanged(strip,TypeDescriptor.GetProperties(strip)["TabGroups"],null,null);
				SetDefaults(group);
			}
			catch
			{
				trans.Cancel();
后面还有 60 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。