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
設定會產生雙衍生父系圖形類別,在您的 DSL 定義的屬性。
覆寫InitializeShapeFields的圖形類別的方法。
- 在 DSL 專案中,建立新的程式碼檔和寫入 shape 類別的部分類別定義。 覆寫該方法定義。
檢查其程式碼的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) 成員都具備執行緒安全。不保證任何執行個體成員是安全執行緒。