Aracılığıyla paylaş


Tasarımcıyı Yeniden Barındırma

Tasarım Aracı yeniden barındırma, iş akışı tasarım tuvalini özel bir uygulamanın içinde barındırmayı ifade eden yaygın bir senaryodur. Çoğu kişinin aşina olduğu barındırma uygulaması Visual Studio'dur, ancak bir uygulamada iş akışı tasarımcısını göstermenin yararlı olabileceği birkaç senaryo vardır:

  • Uygulamaları izleme (son kullanıcının işlemi görselleştirmesine izin vermenin yanı sıra şu anda etkin durumda olan durum, toplam yürütme süresi verileri veya iş akışının bir örneği hakkında diğer bilgiler gibi işlemle ilgili çalışma zamanı verileri).

  • Kullanıcının sınırlı bir etkinlik kümesiyle işlemi özelleştirmesine olanak sağlayan uygulamalar.

Bu tür uygulamaları desteklemek için, iş akışı tasarımcısı .NET Framework içinde sunulur ve bir WPF uygulaması içinde veya uygun WPF barındırma koduna sahip bir WinForms uygulamasında barındırılabilir. Tasarım Aracı Rehosting örneği aşağıdakileri gösterir:

  • WF tasarımcısını yeniden barındırma.

  • Yeniden barındırılan araç kutusunu ve özellik kılavuzunu da kullanma.

Tasarımcıyı yeniden barındırma

Bu örnek, aşağıdaki kılavuz düzeninde görülen tasarımcıyı içerecek WPF düzeninin nasıl oluşturulacağını gösterir (Boşluk endişeleri için araç kutusu kodu atlanır). Tasarımcı ve özellik kılavuzunu içeren kenarlıkların adlandırıldığına dikkat edin.

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="2*"/>
        <ColumnDefinition Width="7*"/>
        <ColumnDefinition Width="3*"/>
    </Grid.ColumnDefinitions>
    <Border Grid.Column="0">
        <sapt:ToolboxControl>...</sapt:ToolboxControl>
    </Border>
    <Border Grid.Column="1" Name="DesignerBorder"/>
    <Border Grid.Column="2" Name="PropertyBorder"/>
</Grid>

Ardından örnek tasarımcıyı oluşturur ve birincil View ve PropertyInspectorView kullanıcı arabirimindeki uygun kapsayıcıyla ilişkilendirir. Aşağıdaki örnekte bazı açıklamalara değer veren birkaç ek kod satırı vardır. Çağrısı, Register .NET Framework ile gönderilen etkinlikler için varsayılan etkinlik tasarımcılarını ilişkilendirmek için gereklidir. Load , düzenlenecek WF öğesini geçirmek için çağrılır. Son olarak, View (birincil tuval) ve PropertyInspectorView (özellik kılavuzu) kullanıcı arabirimi yüzeyine yerleştirilir.

protected override void OnInitialized(EventArgs e)
{
   base.OnInitialized(e);
   // register metadata
   (new DesignerMetadata()).Register();

   // create the workflow designer
   WorkflowDesigner wd = new WorkflowDesigner();
   wd.Load(new Sequence());
   DesignerBorder.Child = wd.View;
   PropertyBorder.Child = wd.PropertyInspectorView;
}

Yeniden barındırılan araç kutusunu kullanma

Bu örnek, XAML'de yeniden barındırılan araç kutusu denetimini bildirimli olarak kullanır. Kodda, bir türü oluşturucuya ToolboxItemWrapper geçirebileceğini unutmayın.

<!-- Copyright (c) Microsoft Corporation. All rights reserved-->
<Window x:Class="Microsoft.Samples.DesignerRehosting.RehostingWfDesigner"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sapt="clr-namespace:System.Activities.Presentation.Toolbox;assembly=System.Activities.Presentation"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        Title="Window1" Height="600" Width="900">
    <Window.Resources>
        <sys:String x:Key="AssemblyName">System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35</sys:String>
    </Window.Resources>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="2*"/>
            <ColumnDefinition Width="7*"/>
            <ColumnDefinition Width="3*"/>
        </Grid.ColumnDefinitions>
        <Border Grid.Column="0">
            <sapt:ToolboxControl>
                <sapt:ToolboxCategory CategoryName="Basic">
                    <sapt:ToolboxItemWrapper AssemblyName="{StaticResource AssemblyName}" >
                        <sapt:ToolboxItemWrapper.ToolName>
                            System.Activities.Statements.Sequence
                        </sapt:ToolboxItemWrapper.ToolName>
                       </sapt:ToolboxItemWrapper>
                    <sapt:ToolboxItemWrapper  AssemblyName="{StaticResource AssemblyName}">
                        <sapt:ToolboxItemWrapper.ToolName>
                            System.Activities.Statements.WriteLine
                        </sapt:ToolboxItemWrapper.ToolName>

                    </sapt:ToolboxItemWrapper>
                    <sapt:ToolboxItemWrapper  AssemblyName="{StaticResource AssemblyName}">
                        <sapt:ToolboxItemWrapper.ToolName>
                            System.Activities.Statements.If
                        </sapt:ToolboxItemWrapper.ToolName>

                    </sapt:ToolboxItemWrapper>
                    <sapt:ToolboxItemWrapper  AssemblyName="{StaticResource AssemblyName}">
                        <sapt:ToolboxItemWrapper.ToolName>
                            System.Activities.Statements.While
                        </sapt:ToolboxItemWrapper.ToolName>

                    </sapt:ToolboxItemWrapper>
                </sapt:ToolboxCategory>
            </sapt:ToolboxControl>
        </Border>
        <Border Grid.Column="1" Name="DesignerBorder"/>
        <Border Grid.Column="2" Name="PropertyBorder"/>
    </Grid>
</Window>

Örneği kullanma

  1. Visual Studio'da Tasarım Aracı Rehosting.sln çözümünü açın.

  2. Uygulamayı derlemek ve çalıştırmak için F5 tuşuna basın.

  3. WPF uygulaması yeniden barındırılan bir tasarımcıyla başlar.