更改工作项窗体布局

TFS 2017 |TFS 2015 |TFS 2013

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

  • 更改窗体上字段的标签或位置
  • 将字段组从一个选项卡移动到另一选项卡
  • 添加新选项卡或列

重要

本主题适用于使用旧窗体布局 (TFS 2017 和早期版本) 本地 XML 项目自定义。 有关 TFS 2017 及更高版本,请参阅 WebLayout 和 Control 元素

有关继承过程模型,请参阅 自定义进程。 有关过程模型的概述,请参阅 自定义工作跟踪体验

有关可以放在工作项窗体中的控件的概述,请参阅 指定工作项窗体控件。 有关 部分顶级结构元素的概述, FORM 请参阅。 设计工作项窗体

更新 WIT 的 XML 定义

如果对 WIT 自定义很新,请注意以下事项:

导出并打开 WIT 定义文件

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

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

  1. 运行 witadmin exportwitd 以导出要修改的工作项类型的 XML 文件。 有关详细信息,请参阅 导入、导出和管理工作项类型

  2. 打开 Visual Studio 中的 文件。

如果要修改 WIT 以自定义进程模板:

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

  2. 打开 WIT XML 文件。

更改 FORM 部分的布局

  1. 找到 <TabGroup> XML 文件的 部分。 请注意,链接和文件附件等项都有元素,其中 <Tab> 每个元素 <Tab> 都包含 <Control> 呈现相应控件的元素。

    <Tab Label="Links">  
          <Control Type="LinksControl" />  
    </Tab>  
    <Tab Label="File Attachments">  
          <Control Type="AttachmentsControl" />  
    </Tab>  
    
  2. 将两个元素合并到包含两个控件的单个 Links 和 Attachments 元素中,将上一步骤中显示的 XML 替换为以下示例中所示的新 <Tab><Tab> XML:

    <Tab Label="Links and Attachments">  
          <Control Type="LinksControl" Label="Links" LabelPosition="Top" />  
          <Control Type="AttachmentsControl" Label="Attachments" LabelPosition="Top" />  
    </Tab>  
    
  3. 找到 定义中的 <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. 选择以下行并将其复制到剪贴板以便稍后使用。

    
    <Control Type="WorkItemClassificationControl" FieldName="System.AreaPath" Label="Area" LabelPosition="Left" /> <Control Type="WorkItemClassificationControl" FieldName="System.IterationPath" Label="Iteration" LabelPosition="Left" />  
    
    
  5. 删除以下 XML 中以 和 结尾的行,以从窗体上的当前位置中删除分类 <Group Label="Classification"><Group> 组。

    <Layout>  
          <Group>  
           <Column PercentWidth="70">  
          <Control Type="FieldControl" FieldName="System.Title" Label="&Title:" LabelPosition="Left" />  
           </Column>  
           <Column PercentWidth="30">  
          <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.Discipline" Label="&Discipline:" LabelPosition="Left" />  
           </Column>  
          </Group>  
          <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>  
    
  6. 在 部分中 <TabGroup> ,找到定义"详细信息"选项卡 <TabGroup> 行:

    <Tab Label="Details">  
          <Group>  
           <Column PercentWidth="50">  
          <Group Label="General">  
           <Column PercentWidth="100">  
              <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.Issue" Label="Iss&ue:" LabelPosition="Left" />  
              <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.ExitCriteria" Label="E&xit criteria:" LabelPosition="Left" />  
              <Control Type="FieldControl" FieldName="Microsoft.VSTS.Build.IntegrationBuild" Label="Integration &build:" LabelPosition="Left" />  
              <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.TaskHierarchy" Label="Task C&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 &work (hours):" LabelPosition="Left" />  
              <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.CompletedWork" Label="Com&pleted work (hours):" LabelPosition="Left" />  
              <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.StartDate" Label="Start Dat&e:" LabelPosition="Left" ReadOnly="True" />  
              <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.FinishDate" Label="&Finish Date:" LabelPosition="Left" ReadOnly="True" />  
           </Column>  
          </Group>  
           </Column>  
          </Group>  
    </Tab>  
    
  7. 若要将这些控件移动到" 详细信息" 选项卡,将剪贴板的内容粘贴到 元素 下方。

    <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&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&ue:" LabelPosition="Left" />  
    ...  
    
  9. 保存所做更改。

  10. 若要将新的工作项类型导入单个项目,请参阅导入、 导出和管理工作项类型。 若要将工作项类型添加到进程模板,请参阅 添加工作项 的类型定义

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

  1. 在团队资源管理器,选择 "刷新 ",从服务器下载最新更新。

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

  2. 使用所修改的工作项类型创建新工作项。

    请注意,Classification 组已不再在主窗体上。 在"链接和附件"选项卡上,选择"详细信息"选项卡以查看所做的更改的结果。