更改工作项窗体布局

通过导出 XML 文件并修改 FORM 节的内容,可以更改工作项窗体布局。修改并导入 XML 文件之后,可以验证在更新的工作项类型中所做的更改。可以进行的布局更改类型包括但不限于下面列出的情况:

  • 更改窗体上字段的标签或位置

  • 将字段组从一个选项卡移动到另一选项卡

  • 添加新选项卡或列

有关可以在工作项窗体中放置的控件的概述,请参见指定工作项窗体控件。有关 FORM 节的顶级结构元素的概述,请参见设计工作项窗体的布局.

主题内容

  • 导出和打开工作项类型定义文件

  • 更改定义文件的 FORM 节的布局

  • 验证更改是否显示在工作项窗体中

需要的权限

若要执行此过程,您必须是**“Team Foundation Administrators (Team Foundation 管理员)”组的成员或项目的“Project Administrators (项目管理员)”**组的成员。有关更多信息,请参见Team Foundation Server 权限

导出和打开工作项类型定义文件

导出和打开工作项类型定义文件

  • 基于所进行的自定义的范围,执行以下步骤之一:

    如果要修改单个项目的工作项类型

    1. 运行 witadmin exportwitd 导出要修改的工作项类型的 XML 文件。有关更多信息,请参见自定义和管理工作项类型 [witadmin]

      说明说明

      如果您运行的是 Windows Vista,则可能无权访问某些文件夹。如果您尝试将工作项类型导出到您无权访问的位置,则注册表虚拟化技术将自动重定向导出的文件,并将其保存到虚拟存储区。若要避免此重定向操作,可以将该文件导出到您有权访问的位置。有关注册表虚拟化的更多信息,请参见 Microsoft 网站上的下列网页:Registry Virtualization(注册表虚拟化)和 Windows Vista 中常见的文件和注册表虚拟化问题

    2. 在 Visual Studio 中,单击**“文件”,单击“打开”,再单击“文件”**。

    3. 将显示**“打开文件”**对话框。

    4. 在**“查找范围”**之下,移动到您导出该文件的位置。

    如果要修改工作项类型以自定义过程模板

    1. 移至下载过程模板的位置。

    2. 选择要更新的工作项类型 XML 文件,然后单击**“打开”。出现有关行尾的提示时,单击“否”**。

返回页首

更改定义文件的 FORM 节的布局

更改表单布局

  1. 找到该 XML 文件的 <TabGroup> 节。请注意,该节中有用于“Links”(链接)和“File Attachments”(文件附件)的 <Tab> 元素,其中每个 <Tab> 元素包含一个呈现各自控件的 <Control> 元素。

    <Tab Label="Links">
      <Control Type="LinksControl" />
    </Tab>
    <Tab Label="File Attachments">
      <Control Type="AttachmentsControl" />
    </Tab>
    
  2. 通过使用下面示例中所示的新 XML 替换上一步骤中所示的 XML,可将两个 <Tab> 元素合并为一个同时包含两个控件的“链接和附件”<Tab> 元素:

    <Tab Label="Links and Attachments">
      <Control Type="LinksControl" Label="Links" LabelPosition="Top" />
      <Control Type="AttachmentsControl" Label="Attachments" LabelPosition="Top" />
    </Tab>
    
  3. 找到描述要修改的组(如 Classification 组)的 <FORM>、<Layout> 定义部分。

    <Group Label="Classification">
      <Column PercentWidth="100">
        <Control Type="WorkItemClassificationControl" FieldName="System.AreaPath" Label="Area" LabelPosition="Left" />
        <Control Type="WorkItemClassificationControl" FieldName="System.IterationPath" Label="Iteration" LabelPosition="Left" />
      </Column>
    </Group>
    
    说明说明

    为获得最佳结果,每个 Control(控件)或 Group(组)应显示在一个 Column(列)中,即使该列跨越整个窗体宽度也应如此。相应地,每列应该显示在一个组中,即使该组没有可见的标签或边界也应如此。

  4. 选择下面示例中突出显示的行,然后单击**“编辑”菜单上的“复制”**,将此内容复制到剪贴板以便以后使用。

      <Column PercentWidth="70">
        <Group>
          <Column PercentWidth="100">
            <Group Label="Classification">
              <Column PercentWidth="100">
                <Control Type="WorkItemClassificationControl" FieldName="System.AreaPath" Label="Area" LabelPosition="Left" />
                <Control Type="WorkItemClassificationControl" FieldName="System.IterationPath" Label="Iteration" LabelPosition="Left" />
              </Column>
            </Group>
          </Column>
        </Group>
      </Column>
    
  5. 删除下面的 XML 中突出显示的行,以将 Classification 组从窗体上的当前位置移除。

    <Layout>
      <Group>
        <Column PercentWidth="70">
          <Control Type="FieldControl" FieldName="System.Title" Label="&amp;Title:" LabelPosition="Left" />
        </Column>
        <Column PercentWidth="30">
          <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.Discipline" Label="&amp;Discipline:" LabelPosition="Left" />
        </Column>
      </Group>
      <Group Label="Classification">
        <Column PercentWidth="100">
          <Control Type="WorkItemClassificationControl" FieldName="System.AreaPath" Label="&amp;Area:" LabelPosition="Left" />
          <Control Type="WorkItemClassificationControl" FieldName="System.IterationPath" Label="&amp;Iteration:" LabelPosition="Left" />
        </Column>
      </Group>
    
  6. 在 <TabGroup> 部分,找到下列定义**“Details”(详细信息)**选项卡的行:

    <Tab Label="Details">
      <Group>
        <Column PercentWidth="50">
          <Group Label="General">
            <Column PercentWidth="100">
              <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.Issue" Label="Iss&amp;ue:" LabelPosition="Left" />
              <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.ExitCriteria" Label="E&amp;xit criteria:" LabelPosition="Left" />
              <Control Type="FieldControl" FieldName="Microsoft.VSTS.Build.IntegrationBuild" Label="Integration &amp;build:" LabelPosition="Left" />
              <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.TaskHierarchy" Label="Task C&amp;ontext:" LabelPosition="Left" ReadOnly="True" />
            </Column>
          </Group>
        </Column>
        <Column PercentWidth="50">
          <Group Label="Schedule">
            <Column PercentWidth="100">
              <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.RemainingWork" Label="Remaining &amp;work (hours):" LabelPosition="Left" />
              <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.CompletedWork" Label="Com&amp;pleted work (hours):" LabelPosition="Left" />
              <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.StartDate" Label="Start Dat&amp;e:" LabelPosition="Left" ReadOnly="True" />
              <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.FinishDate" Label="&amp;Finish Date:" LabelPosition="Left" ReadOnly="True" />
            </Column>
          </Group>
        </Column>
      </Group>
    </Tab>
    
  7. 将剪贴板中的内容粘贴到以下位置,以将这些控件移至**“Details”(详细信息)**选项卡。

    <Tab Label="Details">
      <Control Type="WorkItemClassificationControl" FieldName="System.AreaPath" Label="Area" LabelPosition="Left" />
      <Control Type="WorkItemClassificationControl" FieldName="System.IterationPath" Label="Iteration" LabelPosition="Left" />
      <Group>
        <Column PercentWidth="50">
          <Group Label="General">
            <Column PercentWidth="100">
              <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.Issue" Label="Iss&amp;ue:" LabelPosition="Left" />
    ...
    
  8. 进行下面示例中突出显示的更改,以围绕移动的字段创建分组,并将字段划分为两列:

    <Tab Label="Details">
      <Group Label="Classification">
        <Column PercentWidth="50">
          <Group>
            <Column PercentWidth="100">
              <Control Type="WorkItemClassificationControl" FieldName="System.AreaPath" Label="Area" LabelPosition="Left" />
              <Control Type="WorkItemClassificationControl" FieldName="System.IterationPath" Label="Iteration" LabelPosition="Left" />
            </Column>
          </Group>
        </Column>
        <Column PercentWidth="50">
          <Group>
            <Column PercentWidth="100">
              <Control Type="FieldControl" FieldName="MyCompany.MyProcess.Category" Label="Category" LabelPosition="Left" />
            </Column>
          </Group>
        </Column>
      </Group>
      <Group>
        <Column PercentWidth="50">
          <Group Label="General">
            <Column PercentWidth="100">
              <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.Issue" Label="Iss&amp;ue:" LabelPosition="Left" />
    ...
    
  9. 在工具栏上单击**“保存”**以将更改保存到 XML 文件中。

  10. 若要将新工作项类型导入单个项目中,请参见自定义和管理工作项类型 [witadmin]。若要将工作项类型添加到过程模板中,请参见向过程模板添加工作项的类型定义

返回页首

验证网页或 HTML 内容是否显示在工作项窗体中

验证导入到单个项目中的更改

  1. 在团队资源管理器中单击**“刷新”**,从服务器下载最新的更新。

    这些更新包括您刚导入的更改。请等待几秒钟,直到加载了“工作项”节点。正在加载中的节点显示**“正在工作”**。

  2. 使用所修改的工作项类型创建新工作项。为完成此任务,请右击**“工作项”节点,指向“添加工作项”**,然后单击该工作项类型。

    此工作项是从您已更改的工作项类型创建的。

    请注意,Classification 组已不再在主窗体上。单击**“Links and Attachments”选项卡和“Details”**选项卡以查看所做更改的结果。

  3. 单击**“关闭”以关闭这个新的工作项。提示您保存工作项时,请单击“否”**。

返回页首

请参见

任务

更改字段的标签

添加和自定义工作项类型

参考

自定义和管理工作项类型 [witadmin]

概念

设计工作项窗体的布局

指定工作项窗体控件

设计和自定义工作项窗体