8

有没有办法在 Visual Studio 2010 中为 XAML 编辑器添加 XAML 片段?例如,我想从一些打字中拯救自己,并有这样的事情:

片段: gr<TAB>

生成代码:

<Grid>
    <Grid.RowDefinitions>

    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>

    </Grid.ColumnDefinitions>
</Grid>

然后,如果我输入例如:rd<TAB>它应该生成<RowDefinition />

同样,cd<TAB>应该生成<ColumnDefinition />

对于其他 XAML 元素也是如此。

我想你明白了……关键是使这些片段仅在 Visual Studio 的 XAML 编辑器中可用。将它们放在 Visual Studio 内的其他代码编辑器中(例如,在编辑 .cs 文件时)没有意义。

4

3 回答 3

3

如果您不需要参数,那么您可以使用工具箱!

只需将代码拖到工具箱中,然后将其插入到您想要的任何位置。这适用于 C# 以及 XAML。

来自:http ://blog.wpfwonderland.com/2012/04/16/xaml-snippets-and-visual-studio/

于 2013-04-12T07:23:36.893 回答
3

它适用于 VS 2019。使用指南:创建代码片段

例如,插入:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>

    <Tag Grid.Row="0" Grid.Column="0" />
</Grid>

Tag作为每次插入片段时要设置的可编辑值,请使用以下代码:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippet Format="1.0.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <Header>
    <SnippetTypes>
      <SnippetType>Expansion</SnippetType>
    </SnippetTypes>
    <Title>Grid Default</Title>
    <Description>Grid With Default Rows and Columns</Description>
    <HelpUrl>
    </HelpUrl>
    <Shortcut>griddef</Shortcut>
  </Header>
  <Snippet>
    <Declarations>
      <Literal Editable="true">
        <ID>TagName</ID>
        <ToolTip>Tag Name</ToolTip>
        <Default>TextBlock</Default>
      </Literal>
    </Declarations>

    <Code Language="xaml">
      <![CDATA[
      <Grid>
          <Grid.RowDefinitions>
              <RowDefinition Height="Auto"/>
          </Grid.RowDefinitions>
          <Grid.ColumnDefinitions>
              <ColumnDefinition Width="Auto"/>
          </Grid.ColumnDefinitions>

          <$TagName$ Grid.Row="0" Grid.Column="0" />
      </Grid>
      $selected$$end$]]>
    </Code>
  </Snippet>
</CodeSnippet>

这个文件可以保存在任何带有扩展名的地方.snippet,然后使用片段管理器(Tools | Code Snippets Manager...将文件导入到 IntelliSense 使用的标准位置(不要忘记选择 XAML 类型)。您也可以直接在最终位置创建文件(在下面的片段管理器对话框中可见)以保存导入步骤。

在此处输入图像描述

快捷方式可能不会出现在 IntelliSense 中(这是我的情况,原因我仍然未知),但键入griddef TabTab会插入模板。

根据您的特定需求,替换元素中的代码CDATA,并更改Shortcut元素中的值。您也可以删除此部分:

<Declarations>
  <Literal Editable="true">
    <ID>TagName</ID>
    <ToolTip>Tag Name</ToolTip>
    <Default>TextBlock</Default>
  </Literal>
</Declarations>

如果您不需要任何可编辑的值,或者根据开头提到的指南进行调整。

于 2019-07-26T10:45:39.743 回答
2

没有内置的支持,但是有一个扩展来提供类似的东西

于 2012-04-26T20:43:01.883 回答