次の方法で共有


WorkflowView.ShadowDepth プロパティ

定義

ShadowDepthWorkflowView を取得または設定します。

public:
 property int ShadowDepth { int get(); void set(int value); };
public int ShadowDepth { get; set; }
member this.ShadowDepth : int with get, set
Public Property ShadowDepth As Integer

プロパティ値

Int32

ピクセル単位でのシャドウ深度。

次のコード例は、WorkflowView メソッドを使用して GetView クラスのインスタンスを取得する方法を示しています。 インスタンスの取得後に WorkflowViewHScrollBarVScrollBar などのいくつかの ShadowDepth プロパティを設定し、FitToScreenSize メソッドを呼び出します。

IDesignerHost designerHost = designSurface.GetService(typeof(IDesignerHost)) as IDesignerHost;
if (designerHost != null && designerHost.RootComponent != null)
{
    IRootDesigner rootDesigner = designerHost.GetDesigner(designerHost.RootComponent) as IRootDesigner;
    if (rootDesigner != null)
    {
        UnloadWorkflow();

        this.designSurface = designSurface;
        this.loader = loader;
        this.workflowView = rootDesigner.GetView(ViewTechnology.Default) as WorkflowView;
        this.splitContainer1.Panel1.Controls.Add(this.workflowView);
        this.workflowView.Dock = DockStyle.Fill;
        this.workflowView.TabIndex = 1;
        this.workflowView.TabStop = true;
        this.workflowView.HScrollBar.TabStop = false;
        this.workflowView.VScrollBar.TabStop = false;
        this.workflowView.ShadowDepth = 0;
        this.workflowView.EnableFitToScreen = true;
        this.workflowView.Focus();

        ISelectionService selectionService = GetService(typeof(ISelectionService)) as ISelectionService;
        IComponentChangeService changeService = GetService(typeof(IComponentChangeService)) as IComponentChangeService;

        if (selectionService != null)
        {
            selectionService.SelectionChanged += new EventHandler(OnSelectionChanged);
        }

        if (changeService != null)
        {
            changeService.ComponentAdded += new ComponentEventHandler(changeService_ComponentAdded);
            changeService.ComponentChanged += new ComponentChangedEventHandler(changeService_ComponentChanged);
            changeService.ComponentRemoved += new ComponentEventHandler(changeService_ComponentRemoved);
            changeService.ComponentRename += new ComponentRenameEventHandler(changeService_ComponentRename);
        }
    }
}
Dim designerHost As IDesignerHost = CType(designSurface.GetService(GetType(IDesignerHost)), IDesignerHost)
If designerHost IsNot Nothing And designerHost.RootComponent IsNot Nothing Then

    Dim rootDesigner As IRootDesigner = CType(designerHost.GetDesigner(designerHost.RootComponent), IRootDesigner)
    If rootDesigner IsNot Nothing Then
        UnloadWorkflow()

        Me.designSurface = designSurface
        Me.loader = loader
        Me.workflowView = CType(rootDesigner.GetView(ViewTechnology.Default), WorkflowView)
        Me.splitContainer1.Panel1.Controls.Add(Me.workflowView)
        Me.workflowView.Dock = DockStyle.Fill
        Me.workflowView.TabIndex = 1
        Me.workflowView.TabStop = True
        Me.workflowView.HScrollBar.TabStop = False
        Me.workflowView.VScrollBar.TabStop = False
        Me.workflowView.ShadowDepth = 0
        Me.workflowView.EnableFitToScreen = True
        Me.workflowView.Focus()

        Dim selectionService As ISelectionService = CType(GetService(GetType(ISelectionService)), ISelectionService)
        Dim changeService As IComponentChangeService = CType(GetService(GetType(IComponentChangeService)), IComponentChangeService)

        If selectionService IsNot Nothing Then
            AddHandler selectionService.SelectionChanged, AddressOf OnSelectionChanged
        End If

        If changeService IsNot Nothing Then

            AddHandler changeService.ComponentAdded, AddressOf changeService_ComponentAdded
            AddHandler changeService.ComponentChanged, AddressOf changeService_ComponentChanged
            AddHandler changeService.ComponentRemoved, AddressOf changeService_ComponentRemoved
            AddHandler changeService.ComponentRename, AddressOf changeService_ComponentRename
        End If
    End If
End If

上記のコードでは、現在開かれているワークフローを削除して、新しいワークフローを読み込めるようにするために、UnloadWorkflow メソッドを使っています。これは次のように実装されています。

private void UnloadWorkflow()
{
    IDesignerHost designerHost = GetService(typeof(IDesignerHost)) as IDesignerHost;
    if (designerHost != null && designerHost.Container.Components.Count > 0)
        WorkflowLoader.DestroyObjectGraphFromDesignerHost(designerHost, designerHost.RootComponent as Activity);

    if (this.designSurface != null)
    {
        this.designSurface.Dispose();
        this.designSurface = null;
    }

    if (this.workflowView != null)
    {
        Controls.Remove(this.workflowView);
        this.workflowView.Dispose();
        this.workflowView = null;
    }
}
Private Sub UnloadWorkflow()


    Dim designerHost As IDesignerHost = CType(GetService(GetType(IDesignerHost)), IDesignerHost)
    If designerHost IsNot Nothing And designerHost.Container.Components.Count > 0 Then
        WorkflowLoader.DestroyObjectGraphFromDesignerHost(designerHost, CType(designerHost.RootComponent, Activity))
    End If

    If Me.designSurface IsNot Nothing Then
        Me.designSurface.Dispose()
        Me.designSurface = Nothing
    End If


    If Me.workflowView IsNot Nothing Then
        Controls.Remove(Me.workflowView)
        Me.workflowView.Dispose()
        Me.workflowView = Nothing
    End If

End Sub

注釈

ShadowDepth は、ワークフロー デザイン サーフェイス上に影付きでテキストを表示する場合に、その影の深さを取得または設定するために使います。

適用対象