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
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.
Çözüm Gezgini bölmesinde MainWindow.xaml dosyasına sağ tıklayın ve Kodu Görüntüle'yi seçin.
oluşturan sınıfına
MainWindow
birGetToolboxControl
ToolboxControlyö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; }
Araç Kutusu'nu kılavuzdaki
MainWindow
sol sütuna yerleştiren sınıfına özelAddToolbox
bir yöntem ekleyin.private void AddToolBox() { ToolboxControl tc = GetToolboxControl(); Grid.SetColumn(tc, 0); grid1.Children.Add(tc); }
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(); }
Çö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
Çözüm Gezgini bölmesinde MainWindow.xaml dosyasına sağ tıklayın ve Kodu Görüntüle'yi seçin.
AddPropertyInspector
PropertyGrid bölmesini kılavuzunMainWindow
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); }
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(); }
Çö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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin