Condividi tramite


Riallocazione della finestra di progettazione

Le informazioni contenute in questo argomento sono valide per Windows Workflow Foundation 4.

La riallocazione della finestra di progettazione è un scenario comune che si riferisce all'hosting dell'area di progettazione flussi di lavoro all'interno di un'applicazione personalizzata. La maggior parte degli utenti dell'applicazione host utilizza Visual Studio, tuttavia esistono scenari in cui potrebbe essere utile visualizzare la progettazione flussi di lavoro in un'applicazione:

  • Monitoraggio delle applicazioni: per consentire a un utente finale di visualizzare il processo e i dati di runtime sul processo, ad esempio i dati relativi allo stato attivo attualmente, quelli relativi al tempo di esecuzione dell'aggregazione o altre informazioni su un'istanza del flusso di lavoro.

  • Applicazioni che consentono a un utente di personalizzare il processo con un set limitato di attività.

Per supportare questi tipi di applicazioni, la progettazione flussi di lavoro viene fornita all'interno di .NET Framework e può essere ospitata in un'applicazione WPF o in un'applicazione Windows Form con il codice host WPF appropriato. In questo esempio viene illustrato quanto segue:

  • Riallocazione della progettazione flussi di lavoro.

  • Utilizzo della casella degli strumenti riallocata nonché della griglia delle proprietà.

Riallocazione della progettazione

In questo esempio viene illustrato come creare il layout WPF per contenere la finestra di progettazione, visualizzata nel layout della griglia seguente (codice della Casella degli strumenti omesso per motivi di spazio). Si noti la denominazione dei bordi che contengono la finestra di progettazione e la griglia delle proprietà.

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

Successivamente nell'esempio viene creata la finestra di progettazione e vengono associate le relative proprietà primarie View e PropertyInspectorView al contenitore appropriato nell'interfaccia utente. Esistono alcune righe aggiuntive di codice nell'esempio seguente per le quali è opportuno fornire alcune spiegazioni. La chiamata al metodo Register è necessaria per associare l'ActivityDesigner predefinito per le attività fornite con .NET Framework. Il metodo Load viene chiamato per passare l'elemento WF da modificare. Infine, le proprietà View (area di disegno primaria) e PropertyInspectorView (griglia delle proprietà) vengono posizionate sull'area dell'interfaccia utente.

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;
} 

Utilizzo della casella degli strumenti riallocata

In questo esempio viene utilizzato in modo dichiarativo il controllo della casella degli strumenti riallocata in XAML. Si noti che nel codice, è possibile passare un tipo al costruttore ToolBoxItemWrapper.

<Window.Resources>
        <sys:String x:Key="AssemblyName">System.Activities.Core, 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">
            <sad:ToolboxControl>
                <sad:ToolboxControl.Categories>
                    <sad:ToolboxItemCategory CategoryName="Basic">
                        <sad:ToolboxItemWrapper AssemblyName="{StaticResource AssemblyName}" >
                            <sad:ToolboxItemWrapper.ToolName>
                                System.Activities.Core.Sequence
                            </sad:ToolboxItemWrapper.ToolName>
                           </sad:ToolboxItemWrapper>
                        <sad:ToolboxItemWrapper  AssemblyName="{StaticResource AssemblyName}">
                            <sad:ToolboxItemWrapper.ToolName>
                                System.Activities.Core.WriteLine
                            </sad:ToolboxItemWrapper.ToolName>
                            
                        </sad:ToolboxItemWrapper>
                        <sad:ToolboxItemWrapper  AssemblyName="{StaticResource AssemblyName}">
                            <sad:ToolboxItemWrapper.ToolName>
                                System.Activities.Core.If
                            </sad:ToolboxItemWrapper.ToolName>
                            
                        </sad:ToolboxItemWrapper>
                        <sad:ToolboxItemWrapper  AssemblyName="{StaticResource AssemblyName}">
                            <sad:ToolboxItemWrapper.ToolName>
                                System.Activities.Core.While
                            </sad:ToolboxItemWrapper.ToolName>
                           
                        </sad:ToolboxItemWrapper>
                    </sad:ToolboxItemCategory>
                </sad:ToolboxControl.Categories>
            </sad:ToolboxControl>

Utilizzo dell'esempio

  1. Aprire la soluzione DesignerRehosting.sln in Visual Studio 2010.

  2. Premere F5 per compilare ed eseguire l'applicazione.

  3. Un'applicazione WPF viene avviata con una finestra di progettazione riallocata.

Dd699776.Important(it-it,VS.100).gif Nota:
È possibile che gli esempi siano già installati nel computer. Verificare la directory seguente (impostazione predefinita) prima di continuare.

<UnitàInstallazione>:\WF_WCF_Samples

Se questa directory non esiste, andare alla sezione relativa agli esempi di Windows Communication Foundation (WCF) e Windows Workflow Foundation (WF) per .NET Framework 4 per scaricare tutti gli esempi Windows Communication Foundation (WCF) e WF. Questo esempio si trova nella directory seguente.

<UnitàInstallazione>:\WF_WCF_Samples\WF\Basic\DesignerRehosting\Basic