Aracılığıyla paylaş


Görev 3: Araç Kutusu ve PropertyGrid Bölmeleri Oluşturma

Bu görevde, Araç Kutusu ve PropertyGrid bölmelerini oluşturacak ve bunları yeniden barındırılan Windows İş Akışı Tasarım Aracı ekleyeceksiniz.

Başvuru için, İş Akışını Yeniden Barındırma Tasarım Aracı konu dizisindeki üç görevi tamamladıktan sonra MainWindow.xaml.cs dosyasında olması gereken kod bu konunun sonunda sağlanır.

Araç Kutusu'nu oluşturmak ve kılavuza eklemek için

  1. 2. Görev: İş Akışı Tasarım Aracı Barındırma bölümünde açıklanan yordamı izleyerek elde ettiğiniz HostingApplication projesini açın.

  2. Çözüm Gezgini bölmesinde MainWindow.xaml dosyasına sağ tıklayın ve Kodu Görüntüle'yi seçin.

  3. oluşturan sınıfına MainWindow bir GetToolboxControlToolboxControlyöntem ekleyin, Araç Kutusu'na yeni bir Araç Kutusu kategorisi ekler ve ve Sequence etkinlik türlerini bu kategoriye atarAssign.

    private ToolboxControl GetToolboxControl()
    {
        // Create the ToolBoxControl.
        var ctrl = new ToolboxControl();
    
        // Create a category.
        var category = new ToolboxCategory("category1");
    
        // Create Toolbox items.
        var tool1 =
            new ToolboxItemWrapper("System.Activities.Statements.Assign",
            typeof(Assign).Assembly.FullName, null, "Assign");
    
        var tool2 = new ToolboxItemWrapper("System.Activities.Statements.Sequence",
            typeof(Sequence).Assembly.FullName, null, "Sequence");
    
        // Add the Toolbox items to the category.
        category.Add(tool1);
        category.Add(tool2);
    
        // Add the category to the ToolBox control.
        ctrl.Categories.Add(category);
        return ctrl;
    }
    
  4. Araç Kutusu'nu kılavuzdaki MainWindow sol sütuna yerleştiren sınıfına özel AddToolbox bir yöntem ekleyin.

    private void AddToolBox()
    {
        ToolboxControl tc = GetToolboxControl();
        Grid.SetColumn(tc, 0);
        grid1.Children.Add(tc);
    }
    
  5. Aşağıdaki kodda gösterildiği gibi sınıf oluşturucusunda MainWindow() yöntemine bir çağrı AddToolBox ekleyin:

    public MainWindow()
    {
        InitializeComponent();
        this.RegisterMetadata();
        this.AddDesigner();
    
        this.AddToolBox();
    }
    
  6. Çözümünüzü derlemek ve çalıştırmak için F5 tuşuna basın. ve Sequence etkinliklerini içeren AssignAraç Kutusu görüntülenmelidir.

PropertyGrid oluşturmak için

  1. Çözüm Gezgini bölmesinde MainWindow.xaml dosyasına sağ tıklayın ve Kodu Görüntüle'yi seçin.

  2. AddPropertyInspectorPropertyGrid bölmesini kılavuzun MainWindow en sağdaki sütununa yerleştirmek için yöntemini sınıfına ekleyin:

    private void AddPropertyInspector()
    {
        Grid.SetColumn(wd.PropertyInspectorView, 2);
        grid1.Children.Add(wd.PropertyInspectorView);
    }
    
  3. Aşağıdaki kodda gösterildiği gibi sınıf oluşturucusunda MainWindow() yöntemine bir çağrı AddPropertyInspector ekleyin:

    public MainWindow()
    {
        InitializeComponent();
        this.RegisterMetadata();
        this.AddDesigner();
        this.AddToolBox();
    
        this.AddPropertyInspector();
    }
    
  4. Çözümü derlemek ve çalıştırmak için F5 tuşuna basın. Araç Kutusu, iş akışı tasarım tuvali ve PropertyGrid bölmelerinin tümü görüntülenmelidir ve bir Assign etkinliği veya Sequence etkinliği tasarım tuvaline sürüklediğinizde, özellik kılavuzu vurgulanan etkinliğe bağlı olarak güncelleştirilmelidir.

Örnek

MainWindow.xaml.cs dosyası artık aşağıdaki kodu içermelidir:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
// dlls added.
using System.Activities;
using System.Activities.Core.Presentation;
using System.Activities.Presentation;
using System.Activities.Presentation.Metadata;
using System.Activities.Presentation.Toolbox;
using System.Activities.Statements;
using System.ComponentModel;

namespace HostingApplication
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        private WorkflowDesigner wd;

        public MainWindow()
        {
            InitializeComponent();
            RegisterMetadata();
            AddDesigner();
            this.AddToolBox();
            this.AddPropertyInspector();
        }

        private void AddDesigner()
        {
            // Create an instance of WorkflowDesigner class.
            this.wd = new WorkflowDesigner();

            // Place the designer canvas in the middle column of the grid.
            Grid.SetColumn(this.wd.View, 1);

            // Load a new Sequence as default.
            this.wd.Load(new Sequence());

            // Add the designer canvas to the grid.
            grid1.Children.Add(this.wd.View);
        }

        private void RegisterMetadata()
        {
            var dm = new DesignerMetadata();
            dm.Register();
        }

        private ToolboxControl GetToolboxControl()
        {
            // Create the ToolBoxControl.
            var ctrl = new ToolboxControl();

            // Create a category.
            var category = new ToolboxCategory("category1");

            // Create Toolbox items.
            var tool1 =
                new ToolboxItemWrapper("System.Activities.Statements.Assign",
                typeof(Assign).Assembly.FullName, null, "Assign");

            var tool2 = new ToolboxItemWrapper("System.Activities.Statements.Sequence",
                typeof(Sequence).Assembly.FullName, null, "Sequence");

            // Add the Toolbox items to the category.
            category.Add(tool1);
            category.Add(tool2);

            // Add the category to the ToolBox control.
            ctrl.Categories.Add(category);
            return ctrl;
        }

        private void AddToolBox()
        {
            ToolboxControl tc = GetToolboxControl();
            Grid.SetColumn(tc, 0);
            grid1.Children.Add(tc);
        }

        private void AddPropertyInspector()
        {
            Grid.SetColumn(wd.PropertyInspectorView, 2);
            grid1.Children.Add(wd.PropertyInspectorView);
        }

    }
}

Ayrıca bkz.