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 获取或设置形状字段的默认名称可访问对象的。 (继承自 ShapeField。)
公共属性 DefaultAccessibleState 获取形状字段的默认状态可访问对象的。 (继承自 ShapeField。)
公共属性 DefaultBackgroundBrushId 获取或设置默认画笔的 ID 绘制形状字段的背景。 (继承自 ShapeField。)
公共属性 DefaultFocusable 获取形状字段并验证它是否能接收焦点,或者为形状字段能够接收焦点。 (继承自 ShapeField。)
公共属性 DefaultImage 获取或设置默认图像与此 ImageField。默认图像可以通过重写 GetDisplayImage 方法自定义。
公共属性 DefaultInactiveSelectedBackgroundBrushId 获取或设置默认背景画笔的形状 ID 字段。 (继承自 ShapeField。)
公共属性 DefaultPenId 获取或设置默认钢笔的 ID 为形状字段。 (继承自 ShapeField。)
公共属性 DefaultReflectParentFocusedState 获取子形状字段并验证是否应接收焦点,其父形状接收焦点或设置能够反映其父形状时焦点状态。 (继承自 ShapeField。)
公共属性 DefaultReflectParentSelectedState 获取子形状字段并验证是否应选择它,其父形状中选择或设置能够反映其父形状中选择状态。 (继承自 ShapeField。)
公共属性 DefaultSelectable 获取形状字段并验证它是否可以选择默认情况下或设置形状字段的默认值选择状态。 (继承自 ShapeField。)
公共属性 DefaultSelectedBackgroundBrushId 获取或设置默认背景画笔的形状 ID 字段。 (继承自 ShapeField。)
公共属性 DefaultUnscaled 获取或设置图像是否应绘制未有关此字段区域或应缩放图像适合区域。
公共属性 DefaultVisibility 获取形状字段并验证默认情况下是否显示或设置形状字段的默认值可见性。 (继承自 ShapeField。)
公共属性 Name 获取形状字段的名称。 (继承自 ShapeField。)

页首

方法

  名称 说明
公共方法 AccessibleDoDefaultAction 执行可访问对象的默认事件。 (继承自 ShapeField。)
公共方法 AllowInPlaceEditorAutoSize 在形状字段使一个就地编辑自动调整大小。 (继承自 ShapeField。)
公共方法 AssociateValueWith(Store, AssociatedPropertyInfo) 关联形状字段与分配给形状元素的字段的特性。 (继承自 ShapeField。)
公共方法 AssociateValueWith(Store, Guid) 关联形状字段与分配给形状元素的字段的特性。 (继承自 ShapeField。)
公共方法 AssociateValueWith(Store, Guid, AssociatedPropertyInfo) 关联形状字段与分配给形状元素的字段的特性。 (继承自 ShapeField。)
公共方法 AssociateVisibilityWith(Store, AssociatedPropertyInfo) 关联形状字段的可见性与分配给形状元素的字段的特性。 (继承自 ShapeField。)
公共方法 AssociateVisibilityWith(Store, Guid) 关联形状字段的可见性与分配给形状元素的字段的特性。 (继承自 ShapeField。)
公共方法 AssociateVisibilityWith(Store, Guid, AssociatedPropertyInfo) 关联形状字段的可见性与分配给形状元素的字段的特性。 (继承自 ShapeField。)
公共方法 CanEditValue 获取形状字段并验证它是否可编辑。 (继承自 ShapeField。)
公共方法 CommitPendingEdit 提交挂起的编辑。 (继承自 ShapeField。)
公共方法 DoHitTest 在关系图执行测试指定的命中点确定一个点是否位于形状字段的区域。 (继承自 ShapeField。)
公共方法 DoKeyboardNavigation 使用键盘,则形状字段导航。 (继承自 ShapeField。)
公共方法 DoPaint 绘制 ShapeField 的内容。 (重写 ShapeField.DoPaint(DiagramPaintEventArgs, ShapeElement)。)
公共方法 EditValue(ShapeElement, DiagramClientView) 打开形状字段的就地编辑。 (继承自 ShapeField。)
公共方法 EditValue(ShapeElement, DiagramClientView, PointD) 打开形状字段的就地编辑。 (继承自 ShapeField。)
公共方法 Equals 确定指定的对象是否等于当前对象。 (继承自 Object。)
受保护的方法 Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
公共方法 FindFirstChild 找到第一个子形状字段父形状字段。 (继承自 ShapeField。)
公共方法 FindLastChild 找到最后一个子形状字段父形状字段。 (继承自 ShapeField。)
公共方法 FindNextChild 查找下一个子形状字段父形状字段。 (继承自 ShapeField。)
公共方法 FindNextInChildSubFields 查找下一个子形状字段导航序列。 (继承自 ShapeField。)
公共方法 FindPreviousChild 找到以前的子形状字段父形状字段。 (继承自 ShapeField。)
公共方法 FindPreviousInChildSubFields 找到以前的子形状字段导航序列。 (继承自 ShapeField。)
公共方法 Focused 获取形状字段并验证它是否具有焦点。 (继承自 ShapeField。)
公共方法 GetAccessibilityObject 获取分配给形状字段的可访问性对象。 (继承自 ShapeField。)
公共方法 GetAccessibleChild 获取子形状字段的可访问性对象。 (继承自 ShapeField。)
公共方法 GetAccessibleChildCount 获取的可访问性对象数分配给父形状字段及其子形状字段。 (继承自 ShapeField。)
公共方法 GetAccessibleDefaultActionDescription 获取形状字段的默认值目的可访问对象的。 (继承自 ShapeField。)
公共方法 GetAccessibleDescription 返回图像字段的默认值可访问的说明。 (重写 ShapeField.GetAccessibleDescription(ShapeElement)。)
公共方法 GetAccessibleHelp 获取可访问对象的形状字段帮助。 (继承自 ShapeField。)
公共方法 GetAccessibleHelpTopicFileName 获取帮助中的主题可访问对象的。 (继承自 ShapeField。)
公共方法 GetAccessibleHelpTopicId 获取分配给帮助主题提供可访问对象的 ID。 (继承自 ShapeField。)
公共方法 GetAccessibleName 返回默认可访问的名称图像字段。 (重写 ShapeField.GetAccessibleName(ShapeElement)。)
公共方法 GetAccessibleRole 检索此 ShapeField 可访问的角色。 (重写 ShapeField.GetAccessibleRole(ShapeElement)。)
公共方法 GetAccessibleState 获取形状字段的状态可访问对象的。 (继承自 ShapeField。)
公共方法 GetAccessibleValue 获取在形状字段的值可访问对象的。 (继承自 ShapeField。)
公共方法 GetActiveInPlaceEditor 获取活动的就地编辑。 (继承自 ShapeField。)
公共方法 GetBackgroundBrush 获取绘制形状元素的背景形状字段分配的画笔。 (继承自 ShapeField。)
公共方法 GetBackgroundBrushId 获取绘制形状元素的背景形状字段分配画笔的 ID。 (继承自 ShapeField。)
公共方法 GetBounds 获取形状字段的区域。 (继承自 ShapeField。)
公共方法 GetCursor 获取出现的指针当鼠标指向形状字段。 (继承自 ShapeField。)
公共方法 GetDisplayImage 获取图像由此字段显示。
公共方法 GetFocusable 获取形状字段并验证它是否可以接收焦点。 (继承自 ShapeField。)
公共方法 GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)
公共方法 GetInPlaceEditorBounds 获取一个就地编辑区域。 (继承自 ShapeField。)
公共方法 GetMaximumInPlaceEditorSize 获取一个就地编辑的最大界限。 (继承自 ShapeField。)
公共方法 GetMinimumInPlaceEditorSize 获取一个就地编辑的最小区域。 (继承自 ShapeField。)
公共方法 GetMinimumSize 返回 ImageField 的最小尺寸。 (重写 ShapeField.GetMinimumSize(ShapeElement)。)
公共方法 GetPen 获取绘制形状元素形状字段分配的钢笔。 (继承自 ShapeField。)
公共方法 GetPenId 获取绘制形状元素形状字段分配钢笔的 ID。 (继承自 ShapeField。)
公共方法 GetPotentialMouseAction 获取鼠标事件激活接下来用户何时在关系图上单击特定点。 (继承自 ShapeField。)
公共方法 GetSelectable 获取形状字段并验证它是否能选择。 (继承自 ShapeField。)
公共方法 GetType 获取当前实例的 Type。 (继承自 Object。)
公共方法 GetUnscaled 获取是否图像应为绘制未。
公共方法 GetValue 获取在形状字段的值。 (继承自 ShapeField。)
公共方法 GetValueDomainPropertyInfo 获取分配给形状字段的值的字段的特性。 (继承自 ShapeField。)
公共方法 GetVisible 获取形状字段并验证是否显示。 (继承自 ShapeField。)
公共方法 HasFocusedAppearance 获取形状字段并验证它是否应显示具有焦点。 (继承自 ShapeField。)
公共方法 HasPendingEdit 获取形状字段并验证其就地编辑是否处于活动状态,并更改挂起。 (继承自 ShapeField。)
公共方法 HasSelectedAppearance 获取形状字段并验证是否显示选中。 (继承自 ShapeField。)
公共方法 IsNavigationKey(Char) 获取用户按下的键并验证它是否可用于导航在形状之间的字段。 (继承自 ShapeField。)
公共方法 IsNavigationKey(Keys) 获取用户按下的键并验证它们是否可用于在形状之间的字段。 (继承自 ShapeField。)
受保护的方法 MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
公共方法 NavigateAscend 将焦点移到导航序列中的前形状字段选定形状的。 (继承自 ShapeField。)
公共方法 NavigateDescend 将焦点移到导航序列的下一个形状字段选定形状的。 (继承自 ShapeField。)
公共方法 NavigateToFirst 将焦点移到导航序列中的第一个形状字段选定形状的。 (继承自 ShapeField。)
公共方法 NavigateToLast 将焦点移到导航序列中的最后一个形状字段选定形状的。 (继承自 ShapeField。)
公共方法 NavigateToNext 将焦点移到导航序列的下一个形状字段选定形状的。 (继承自 ShapeField。)
公共方法 NavigateToPrevious 将焦点移到导航序列中的前形状字段选定形状的。 (继承自 ShapeField。)
受保护的方法 OnBeginEdit 警报侦听器,当就地编辑启动。 (继承自 ShapeField。)
公共方法 OnClick 警报侦听器,当用户单击形状字段。 (继承自 ShapeField。)
公共方法 OnDoubleClick 警报侦听器,当用户双击的形状字段。 (继承自 ShapeField。)
受保护的方法 OnEndEdit 警报侦听器,当就地编辑已完成。 (继承自 ShapeField。)
公共方法 OnKeyDown 警报侦听器,当用户按下的键,当指向形状字段。 (继承自 ShapeField。)
公共方法 OnKeyPress 警报侦听器,当用户按键,当指向形状字段。 (继承自 ShapeField。)
公共方法 OnKeyUp 警报侦听器,当用户已释放键,当指向形状字段。 (继承自 ShapeField。)
公共方法 OnMouseDown 警报侦听器,当用户在中形状的字段中。 (继承自 ShapeField。)
公共方法 OnMouseMove 警报侦听器,当鼠标移动了形状字段。 (继承自 ShapeField。)
公共方法 OnMouseUp 警报侦听器,当用户松开了形状字段的鼠标按钮。 (继承自 ShapeField。)
公共方法 OnMouseWheel 警报侦听器,当鼠标旋转了形状字段。 (继承自 ShapeField。)
公共方法 Selected 获取形状字段并验证是否已选择。 (继承自 ShapeField。)
公共方法 SetSelectionRange 设置选定到子形状字段大小。 (继承自 ShapeField。)
公共方法 SetValue 将此指定值赋形状字段。 (继承自 ShapeField。)
公共方法 SetVisible 设置形状字段的可见性。 (继承自 ShapeField。)
公共方法 ToString 返回表示当前对象的字符串。 (继承自 Object。)

页首

备注

在定义形状的一个图像修饰器,,因此,当您定义图形形状,形状显示的区域由 ImageField 管理。 在 ImageFields 和其他 ShapeFields 的初始化的示例,请检查 DSL \GeneratedCode\Shapes.cs in your DSL 解决方案。

ImageField 是管理在形状内的区域的对象,例如空间分配给修饰器。 一 ImageField 实例共享同一形状类的许多形状之间。 ImageField 实例不存储每个形状的一个单独的图像:相反, GetDisplayImage(ShapeElement) 方法采用形状作为参数,并可以查找形状及其模型元素的当前状态的图像依赖项。

如果需要特殊的行为 (例如将变量的图像,可以创建拥有从 ImageField 派生的类。

创建 ImageField 子类

  1. 设置父形状类的 生成派生的二进制文件 属性在 DSL 定义的。

  2. 重写形状类的 InitializeShapeFields 方法。

    • 创建新的代码文件在 DSL 项目和写入形状类的分部类定义。 重写方法以定义即可。
  3. 检查 InitializeShapeFields 代码在 DSL \GeneratedCode\Shapes .cs 的。

    在重写方法,请调用基方法来创建实例拥有图像域类。 使用此替换在 shapeFields 的常规映像字段列表。

示例

此示例在形状的模型元素的状态制作一个图标更改依赖项。

警告

此示例演示如何将一个动态图像修饰器。,但是,如果只想在一个图像之间切换基于一个模型变量的状态,较为简单的创建多个图像修饰器,找到它们在形状的同一位置,然后设置可见性筛选器取决于设计变量的特定值。若要设置此筛选器,选择在 DSL 定义的类型映射,打开 DSL 详细信息 " 窗口,然后单击修饰器选项。

使用尽可能少的语言模板,若要运行此代码示例,请创建一个新的 DSL 解决方案。 添加一个布尔型字段特性 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;
      }
    }
  }
}

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

请参见

参考

Microsoft.VisualStudio.Modeling.Diagrams 命名空间

TextField

ShapeField

InitializeShapeFields