Admettons que vous vouliez héberger le designer pour un woflow séquentiel mais les onglets Fault et Cancel ne vous interesse pas. Et vous ne voulez pas que l'utilisateur soit troublé par ce genre de chose.

Première solution : faîtes votre designer à la main. Un bon exemple se trouve sur http://www.thispointer.com/workflows/FlowChart.exe (avec le résultat suivant http://www.thispointer.com/workflows/FlowChart.jpg).

Autre solution, partir du designer existant pour l'objet SequentialWorkflowActivity.

Première étape, héritez de SequentialWorkflowActivityDesigner et surchargez la propriété Views :

 public class ExtendedSequentialWorkflowRootDesigner : SequentialWorkflowRootDesigner
 {
        public ExtendedSequentialWorkflowRootDesigner()
            : base()
        {
        }


        public override ReadOnlyCollection<DesignerView> Views
        {
            get
            {
                List<DesignerView> list = new List<DesignerView>();
                list.Add(base.Views[0]);
                ReadOnlyCollection<DesignerView> result = new ReadOnlyCollection<DesignerView>(list);
                return result;
            }
        }
  }

Puis créer un workflow séquentiel avec code séparé et modifier le fichier .xoml.cs généré pour ajouter un attribut à la classe partielle :

    [Designer(typeof(ExtendedSequentialWorkflowRootDesigner), typeof(IRootDesigner))]
 public partial class ExtendedSequentialWorkflowActivity : SequentialWorkflowActivity
 {

Et le tour est joué :)

Il ne reste plus qu'à modifier le loader de votre designer de façon à instancier un objet de ce type plutôt qu'un SequentialWorkflowActivity lorsqu'un nouveau workflow est créé. Typiquement dans la surcharge du OnLaod de votre Control :

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            ExtendedSequentialWorkflowActivity workflow = new ExtendedSequentialWorkflowActivity();     
            using (StringWriter stringWriter = new StringWriter())
            {
                using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter))
                {
                    WorkflowMarkupSerializer serializer = new WorkflowMarkupSerializer();
                    serializer.Serialize(xmlWriter, _workflow);
                    this.Xoml = stringWriter.ToString();
                }
            }          
        }