共用方式為


ImageField 類別

輕量級物件,表示組件可以顯示映像裝飾或背景的圖形。

繼承階層架構

System.Object
  Microsoft.VisualStudio.Modeling.Diagrams.ShapeField
    Microsoft.VisualStudio.Modeling.Diagrams.ImageField

命名空間:  Microsoft.VisualStudio.Modeling.Diagrams
組件:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0 (在 Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0.dll 中)

語法

'宣告
Public Class ImageField _
    Inherits ShapeField
public class ImageField : ShapeField

ImageField 型別會公開下列成員。

建構函式

  名稱 說明
公用方法 ImageField(String) 初始化 ImageField 類別的新執行個體。
公用方法 ImageField(String, Image) 初始化 ImageField 類別的新執行個體。

回頁首

屬性

  名稱 說明
公用屬性 AnchoringBehavior 描述應該如何放置欄位的內容並將其相對於父 ShapeElement 自動調整本身。 (繼承自 ShapeField)。
公用屬性 DefaultAccessibleDescription 取得或設定預設的可存取描述。 (繼承自 ShapeField)。
公用屬性 DefaultAccessibleName 取得或設定可存取的物件由 shape 功能變數的預設名稱。 (繼承自 ShapeField)。
公用屬性 DefaultAccessibleState 取得可存取物件的 shape 功能變數的預設狀態。 (繼承自 ShapeField)。
公用屬性 DefaultBackgroundBrushId 取得或設定預設的筆刷來繪製背景的 shape 功能變數的 ID。 (繼承自 ShapeField)。
公用屬性 DefaultFocusable 取得由 shape 功能變數並驗證它是否可以接收焦點,或可讓 shape 功能變數會接收焦點。 (繼承自 ShapeField)。
公用屬性 DefaultImage 取得或設定與這個 ImageField 相關聯的預設影像。藉由覆寫 GetDisplayImage 方法,您可以自訂預設的影像。
公用屬性 DefaultInactiveSelectedBackgroundBrushId 取得或設定由 shape 功能變數的預設背景筆刷的 ID。 (繼承自 ShapeField)。
公用屬性 DefaultPenId 取得或設定要用於 shape 功能變數的預設畫筆識別碼。 (繼承自 ShapeField)。
公用屬性 DefaultReflectParentFocusedState 取得子項塑造欄位,並且會驗證是否與其父圖案取得焦點,或設定以反映其父圖案的焦點狀態的能力時,它應該接收焦點。 (繼承自 ShapeField)。
公用屬性 DefaultReflectParentSelectedState 取得子項塑造欄位,並且會驗證是否應該會選取其父系圖形已選取,或設定的能力,以反映其父圖案的選取狀態時。 (繼承自 ShapeField)。
公用屬性 DefaultSelectable 取得 shape 功能變數,會驗證是否還可以選取預設或設定由 shape 功能變數的預設選取項目狀態。 (繼承自 ShapeField)。
公用屬性 DefaultSelectedBackgroundBrushId 取得或設定由 shape 功能變數的預設背景筆刷的 ID。 (繼承自 ShapeField)。
公用屬性 DefaultUnscaled 取得或設定是否應繪製未縮放的範圍中,這個欄位到有關影像或影像應該調整以符合界限。
公用屬性 DefaultVisibility 取得由 shape 功能變數並驗證它是否預設會出現,或設定預設的可視性由 shape 功能變數。 (繼承自 ShapeField)。
公用屬性 Name 取得由 shape 功能變數的名稱。 (繼承自 ShapeField)。

回頁首

方法

  名稱 說明
公用方法 AccessibleDoDefaultAction 可存取物件不會執行預設動作。 (繼承自 ShapeField)。
公用方法 AllowInPlaceEditorAutoSize 可讓編輯器來自動調整大小 shape 功能變數中。 (繼承自 ShapeField)。
公用方法 AssociateValueWith(Store, AssociatedPropertyInfo) 將由 shape 功能變數產生關聯與網域屬性指派給圖形元素。 (繼承自 ShapeField)。
公用方法 AssociateValueWith(Store, Guid) 將由 shape 功能變數產生關聯與網域屬性指派給圖形元素。 (繼承自 ShapeField)。
公用方法 AssociateValueWith(Store, Guid, AssociatedPropertyInfo) 將由 shape 功能變數產生關聯與網域屬性指派給圖形元素。 (繼承自 ShapeField)。
公用方法 AssociateVisibilityWith(Store, AssociatedPropertyInfo) 建立由 shape 功能變數的可視性與網域屬性指派給圖形元素的關聯。 (繼承自 ShapeField)。
公用方法 AssociateVisibilityWith(Store, Guid) 建立由 shape 功能變數的可視性與網域屬性指派給圖形元素的關聯。 (繼承自 ShapeField)。
公用方法 AssociateVisibilityWith(Store, Guid, AssociatedPropertyInfo) 建立由 shape 功能變數的可視性與網域屬性指派給圖形元素的關聯。 (繼承自 ShapeField)。
公用方法 CanEditValue 取得由 shape 功能變數,並確認是否可以編輯。 (繼承自 ShapeField)。
公用方法 CommitPendingEdit 認可暫止的編輯。 (繼承自 ShapeField)。
公用方法 DoHitTest 在圖表中,以判斷點是否位於 shape 功能變數的範圍中的指定點上執行點擊的測試。 (繼承自 ShapeField)。
公用方法 DoKeyboardNavigation 要使用鍵盤巡覽 shape 功能變數中。 (繼承自 ShapeField)。
公用方法 DoPaint 繪製 ShapeField 的內容。 (覆寫 ShapeField.DoPaint(DiagramPaintEventArgs, ShapeElement)。)
公用方法 EditValue(ShapeElement, DiagramClientView) 開啟由 shape 功能變數的就地編輯器。 (繼承自 ShapeField)。
公用方法 EditValue(ShapeElement, DiagramClientView, PointD) 開啟由 shape 功能變數的就地編輯器。 (繼承自 ShapeField)。
公用方法 Equals 判斷指定的物件是否等於目前物件。 (繼承自 Object)。
受保護的方法 Finalize 允許物件在記憶體回收進行回收之前,嘗試釋放資源並執行其他清除作業。 (繼承自 Object)。
公用方法 FindFirstChild 在第一個子系 shape 功能變數中尋找父系 shape 功能變數。 (繼承自 ShapeField)。
公用方法 FindLastChild 在最後一個子系 shape 功能變數中尋找父系 shape 功能變數。 (繼承自 ShapeField)。
公用方法 FindNextChild 在下一個子系 shape 功能變數中尋找父系 shape 功能變數。 (繼承自 ShapeField)。
公用方法 FindNextInChildSubFields 在導覽順序中,找出下一個子系 shape 功能變數。 (繼承自 ShapeField)。
公用方法 FindPreviousChild 在前一個子系 shape 功能變數中尋找父系 shape 功能變數。 (繼承自 ShapeField)。
公用方法 FindPreviousInChildSubFields 在前一個子系 shape 功能變數中尋找這個巡覽順序。 (繼承自 ShapeField)。
公用方法 Focused 取得由 shape 功能變數,並確認其是否有焦點。 (繼承自 ShapeField)。
公用方法 GetAccessibilityObject 取得指派給由 shape 功能變數的存取範圍物件。 (繼承自 ShapeField)。
公用方法 GetAccessibleChild 取得子 shape 功能變數的存取範圍物件。 (繼承自 ShapeField)。
公用方法 GetAccessibleChildCount 取得指派給父 shape 功能變數及子系圖形欄位的存取範圍物件的數目。 (繼承自 ShapeField)。
公用方法 GetAccessibleDefaultActionDescription 取得可存取物件的預設的目的 shape 功能變數。 (繼承自 ShapeField)。
公用方法 GetAccessibleDescription 傳回影像欄位的預設可存取描述。 (覆寫 ShapeField.GetAccessibleDescription(ShapeElement)。)
公用方法 GetAccessibleHelp 取得可存取物件的 shape 功能變數說明。 (繼承自 ShapeField)。
公用方法 GetAccessibleHelpTopicFileName 取得 [說明] 中的主題,可存取物件。 (繼承自 ShapeField)。
公用方法 GetAccessibleHelpTopicId 取得指派給可存取物件的 [說明] 主題的 ID。 (繼承自 ShapeField)。
公用方法 GetAccessibleName 傳回影像欄位的預設可存取名稱。 (覆寫 ShapeField.GetAccessibleName(ShapeElement)。)
公用方法 GetAccessibleRole 擷取這個 ShapeField 的可存取角色。 (覆寫 ShapeField.GetAccessibleRole(ShapeElement)。)
公用方法 GetAccessibleState 取得可存取物件的 shape 功能變數的狀態。 (繼承自 ShapeField)。
公用方法 GetAccessibleValue Shape 功能變數中取得可存取物件的值。 (繼承自 ShapeField)。
公用方法 GetActiveInPlaceEditor 取得編輯器使用中。 (繼承自 ShapeField)。
公用方法 GetBackgroundBrush 取得用來繪製為圖形項目指派給這個 shape 功能變數的背景的筆刷。 (繼承自 ShapeField)。
公用方法 GetBackgroundBrushId 取得用來繪製為圖形項目指派給這個 shape 功能變數的背景的筆刷的 ID。 (繼承自 ShapeField)。
公用方法 GetBounds 取得由 shape 功能變數的範圍。 (繼承自 ShapeField)。
公用方法 GetCursor 取得當滑鼠指向 [圖形] 欄位會出現指標。 (繼承自 ShapeField)。
公用方法 GetDisplayImage 取得要依這個欄位會顯示的影像。
公用方法 GetFocusable 取得由 shape 功能變數,並驗證它的電腦可以接收的焦點。 (繼承自 ShapeField)。
公用方法 GetHashCode 做為特定型別的雜湊函式。 (繼承自 Object)。
公用方法 GetInPlaceEditorBounds 取得編輯器的界限。 (繼承自 ShapeField)。
公用方法 GetMaximumInPlaceEditorSize 取得編輯器的最大上限。 (繼承自 ShapeField)。
公用方法 GetMinimumInPlaceEditorSize 取得編輯器的最小的範圍。 (繼承自 ShapeField)。
公用方法 GetMinimumSize 傳回的最小的 ImageField。 (覆寫 ShapeField.GetMinimumSize(ShapeElement)。)
公用方法 GetPen 取得畫筆繪製已指派的 shape 功能變數的圖形項目。 (繼承自 ShapeField)。
公用方法 GetPenId 取得畫筆繪製已指派的 shape 功能變數的圖形元素的 ID。 (繼承自 ShapeField)。
公用方法 GetPotentialMouseAction 取得要啟動的使用者接下來按一下圖表上的特定點時的滑鼠動作。 (繼承自 ShapeField)。
公用方法 GetSelectable 取得由 shape 功能變數,並確認是否可以選取。 (繼承自 ShapeField)。
公用方法 GetType 取得目前執行個體的 Type。 (繼承自 Object)。
公用方法 GetUnscaled 取得是否映像必須繪製未縮放與否。
公用方法 GetValue 取得由 shape 功能變數中的值。 (繼承自 ShapeField)。
公用方法 GetValueDomainPropertyInfo 取得網域屬性指派給由 shape 功能變數中的值。 (繼承自 ShapeField)。
公用方法 GetVisible 取得由 shape 功能變數,並驗證是否會出現。 (繼承自 ShapeField)。
公用方法 HasFocusedAppearance 取得由 shape 功能變數,會驗證是否看起來應該會有焦點。 (繼承自 ShapeField)。
公用方法 HasPendingEdit 取得由 shape 功能變數,並確認其就地編輯器是否使用中,並且變更已暫止。 (繼承自 ShapeField)。
公用方法 HasSelectedAppearance 取得由 shape 功能變數,會驗證是否顯示被選取。 (繼承自 ShapeField)。
公用方法 IsNavigationKey(Char) 取得使用者按下,並驗證是否它可用來瀏覽] 圖形的欄位之間的機碼。 (繼承自 ShapeField)。
公用方法 IsNavigationKey(Keys) 取得使用者按下,並驗證是否它們可用來瀏覽] 圖形的欄位之間的機碼。 (繼承自 ShapeField)。
受保護的方法 MemberwiseClone 建立目前 Object 的淺層複本 (Shallow Copy)。 (繼承自 Object)。
公用方法 NavigateAscend 將焦點移至前一個導覽順序選定圖案的 shape 功能變數中。 (繼承自 ShapeField)。
公用方法 NavigateDescend 將焦點移至下一步導覽順序選定圖案的 shape 功能變數中。 (繼承自 ShapeField)。
公用方法 NavigateToFirst 將焦點移至第一個選定圖案的巡覽順序的 shape 功能變數中。 (繼承自 ShapeField)。
公用方法 NavigateToLast 將焦點移至最後一個導覽順序選定圖案的 shape 功能變數中。 (繼承自 ShapeField)。
公用方法 NavigateToNext 將焦點移至下一步導覽順序選定圖案的 shape 功能變數中。 (繼承自 ShapeField)。
公用方法 NavigateToPrevious 將焦點移至前一個導覽順序選定圖案的 shape 功能變數中。 (繼承自 ShapeField)。
受保護的方法 OnBeginEdit 當就地編輯已開始時,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 OnClick 當使用者按一下 shape 功能變數時,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 OnDoubleClick 當使用者已按兩下 shape 功能變數時,系統會通知的接聽程式。 (繼承自 ShapeField)。
受保護的方法 OnEndEdit 當就地編輯完成後,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 OnKeyDown 使用者已按住按鍵時指向 shape 功能變數時,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 OnKeyPress 使用者按下按鍵時指向 shape 功能變數後,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 OnKeyUp 當使用者放開了索引鍵指向 shape 功能變數時,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 OnMouseDown 當使用者透過 shape 功能變數時按住滑鼠時,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 OnMouseMove 當滑鼠移 shape 功能變數時,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 OnMouseUp 使用者已在 shape 功能變數上,放開滑鼠按鈕時,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 OnMouseWheel 當滑鼠經過旋轉 shape 功能變數上時,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 Selected 取得由 shape 功能變數,並確認是否已選取。 (繼承自 ShapeField)。
公用方法 SetSelectionRange 將選取範圍設定某個範圍的子表單/報表] 圖形。 (繼承自 ShapeField)。
公用方法 SetValue 將指定的值指派給 shape 功能變數中。 (繼承自 ShapeField)。
公用方法 SetVisible 設定由 shape 功能變數的可視性。 (繼承自 ShapeField)。
公用方法 ToString 傳回表示目前物件的字串。 (繼承自 Object)。

回頁首

備註

當您在圖形中,定義映像裝飾,而且當您定義的 [影像] 圖形時,用來顯示圖形的區域被受 ImageField。 有關 ImageFields 及其他 ShapeFields 的初始設定的詳細資訊,請在您的 DSL 方案檢查 Dsl\GeneratedCode\Shapes.cs。

ImageField 是一個物件,管理圖案,例如指派給裝飾的空間內的區域。 ImageField 執行個體都會共用相同的圖形類別的多個圖形之間。 ImageField 執行個體不會儲存個別的映像,每個圖形: 相反地, GetDisplayImage(ShapeElement)方法會取得做為參數,圖案,並可以查閱取決於目前的圖形和其模型項目狀態的影像。

如果您希望特殊的行為,例如變數的映像時,您可以建立自己的類別衍生自 ImageField。

若要建立子類別的 ImageField

  1. 設定會產生雙衍生父系圖形類別,在您的 DSL 定義的屬性。

  2. 覆寫InitializeShapeFields的圖形類別的方法。

    • 在 DSL 專案中,建立新的程式碼檔和寫入 shape 類別的部分類別定義。 覆寫該方法定義。
  3. 檢查其程式碼的InitializeShapeFields DSL\GeneratedCode\Shapes.cs 中。

    在覆寫方法中,呼叫基底方法,然後建立您自己的映像欄位類別的執行個體。 這用來取代標準圖像] 欄位,在shapeFields清單。

範例

本範例將圖示變更圖形的模型項目的狀態而定。

警告

本範例會示範如何使動態影像裝飾。但是,如果您只要一或兩個影像,在不同的模型變數狀態之間切換,會更容易建立數個映像的裝飾,找出它們在圖形上,相同的位置後再設定 [可見性篩選特定的模型變數的值而定。若要設定此篩選器,選取 [圖形導覽],請在 DSL 定義、 開啟 DSL 細節] 視窗中,然後按一下 [裝飾] 索引標籤。

若要執行這個範例程式碼,建立新的 DSL 方案使用最少的語言範本。 將屬性新增到網域,則為 True AlternateState 至 ExampleElement 網域類別。 新增圖示裝飾 ExampleShape 類別,並設定其影像點陣圖檔案。 按一下 [ 轉換所有範本。 在新的程式碼檔案中加入 DSL 專案,並插入下列程式碼。

測試程式碼,可以按下 f5 鍵,然後在偵錯方案中,開啟 [範例圖表]。 圖示的預設狀態應該會出現。 選取圖形,然後在 [屬性] 視窗中,變更的值 AlternateState 屬性。 圖示應該會再出現旋轉到 90 度,該圖形上。

using Microsoft.VisualStudio.Modeling;
using Microsoft.VisualStudio.Modeling.Diagrams;
...
partial class ExampleShape
{
    /// <summary>
    /// Compose a list of the fields in this shape.
    /// Called once for each shape class.
    /// </summary>
    /// <param name="shapeFields"></param>
    protected override void InitializeShapeFields(IList<ShapeField> shapeFields)
    {
      // Fields set up according to DSL Definition:
      base.InitializeShapeFields(shapeFields);

      // Replace the image field:
      ShapeField oldField = ShapeElement.FindShapeField(shapeFields, "IconDecorator");
      shapeFields.Remove(oldField);
      // Must keep the same name:
      MyImageField newField = new MyImageField(oldField.Name);
      shapeFields.Add(newField);
      newField.DefaultImage = (oldField as ImageField).DefaultImage.Clone() as System.Drawing.Image;
    }
  }


  public class MyImageField : ImageField
  {
    public MyImageField(string tag) : base(tag) { }

    /// <summary>
    /// Get the image for this field in the given shape.
    /// </summary>
    public override System.Drawing.Image GetDisplayImage(ShapeElement parentShape)
    {
      ExampleElement element = parentShape.ModelElement as ExampleElement;
      if (element.AlternateState == true)
        return AlternateImage;
      else
        return base.GetDisplayImage(parentShape);
    }

    private System.Drawing.Image alternateImage;
    public System.Drawing.Image AlternateImage
    {
      get
      {
        if (alternateImage == null)
        {
          // Alternate image is a copy of the default, rotated by 90 degrees:
          alternateImage = this.DefaultImage.Clone() as System.Drawing.Image;
          alternateImage.RotateFlip(System.Drawing.RotateFlipType.Rotate90FlipNone);
        }
        return alternateImage;
      }
    }
  }
}

執行緒安全

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。不保證任何執行個體成員是安全執行緒。

請參閱

參考

Microsoft.VisualStudio.Modeling.Diagrams 命名空間

TextField

ShapeField

InitializeShapeFields