如何:更改工作项窗体布局

更新:2007 年 11 月

您可以通过导出 XML 文件并修改其内容来更改工作项窗体布局。修改窗体布局后,就可以导入 XML 文件来开始使用更新的工作项类型了。

必需的权限

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

更改表单布局

  1. 如果要修改单个项目上的工作项类型,请运行 witexport 以导出要修改的工作项类型的 XML 文件。有关更多信息,请参见如何:从现有项目中导出工作项类型

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

    这将显示“打开文件”对话框。

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

    如果要修改工作项类型以自定义过程模板,移动到您下载该过程模板的位置。

    说明:

    如果您运行的是 Windows Vista,则可能无权访问某些文件夹。如果您尝试将工作项类型导出到您无权访问的位置,则注册表虚拟化技术将自动重定向导出的文件,并将其保存到虚拟存储区。有关更多信息,请参见 https://go.microsoft.com/fwlink/?LinkId=92325https://go.microsoft.com/fwlink/?LinkId=92323。若要避免此重定向操作,可以将该文件导出到您有权访问的位置。

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

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

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

    <Tab Label="Links and Attachments">
      <Control Type="LinksControl" Label="Links" LabelPosition="Top" />
      <Control Type="AttachmentsControl" Label="Attachments" LabelPosition="Top" />
    </Tab>
    
  7. 找到描述了要修改的组(例如“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(列)中,即使该 Column 跨越整个窗体宽度也应如此。相应地,每个 Column 应该显示在一个 Group 中,即使该 Group 没有可见的标签或边界也应如此。

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

      <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>
    
  9. 删除下面的 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>
    
  10. 在 <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>
    
  11. 将剪贴板中的内容粘贴到以下位置,以将这些控件移至“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" />
    ...
    
  12. 进行下列更改(以粗体文本显示),以围绕被移动的字段创建分组并将字段划分为两列。

    <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" />
    ...
    
  13. 在工具栏上单击“保存”将更改保存到该 XML 文件。

  14. 若要将新工作项类型导入单个项目中,请参见如何:将工作项类型导入现有项目。若要将工作项类型添加到过程模板中,请参见工作项类型

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

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

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

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

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

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

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

请参见

任务

如何:自定义字段标签

概念

工作项窗体 <Layout>、<Group> 和 <Column> 元素

工作项表单控件

所有工作项 <FORM> 元素

工作项表单示例