1. VS代码片段管理器
vs编辑器支持自定义代码片段来快速生成代码,在工具 (Tools)
> 代码片段管理器 (Code Snippet Manager)
中 进行管理
2. 自定义代码片段
2.1 编写代码片段xml文件(xxx.snippet)
<?xml version="1.0" encoding="utf-8" ?>
<!-- CodeSnippets 根元素定义代码片段的命名空间 -->
<CodeSnippets xmlns="<http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet>">
<!-- CodeSnippet 元素定义一个代码片段 -->
<CodeSnippet Format="1.0.0">
<!-- Header 元素包含代码片段的元数据 -->
<Header>
<!-- 标题:代码片段的名称 -->
<Title>Routed Event</Title>
<!-- 快捷方式:输入此快捷方式可以插入代码片段 -->
<Shortcut>routevent</Shortcut>
<!-- 描述:代码片段的描述信息 -->
<Description>Code snippet for a routed event</Description>
<!-- 作者:代码片段的作者 -->
<Author>YourName</Author>
<!-- SnippetTypes 元素定义代码片段的类型 -->
<SnippetTypes>
<!-- SnippetType 元素指定代码片段的类型为 Expansion -->
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<!-- Snippet 元素包含代码片段的主要内容 -->
<Snippet>
<!-- Declarations 元素包含代码片段中的可替换部分 -->
<Declarations>
<!-- Literal 元素定义一个可替换的占位符 -->
<Literal>
<!-- ID:占位符的名称 -->
<ID>EventName</ID>
<!-- ToolTip:占位符的工具提示信息 -->
<ToolTip>Event name</ToolTip>
<!-- Default:占位符的默认值 -->
<Default>MyEvent</Default>
</Literal>
<!-- 定义另一个可替换的占位符 -->
<Literal>
<ID>OwnerClass</ID>
<ToolTip>Owner class name</ToolTip>
<Default>MyClass</Default>
</Literal>
<!-- 定义第三个可替换的占位符 -->
<Literal>
<ID>HandlerType</ID>
<ToolTip>Handler type</ToolTip>
<Default>RoutedEventHandler</Default>
</Literal>
</Declarations>
<!-- Code 元素包含实际的代码内容 -->
<Code Language="csharp"><![CDATA[
public static readonly RoutedEvent $EventName$Event = EventManager.RegisterRoutedEvent(
"$EventName$", RoutingStrategy.Bubble, typeof($HandlerType$), typeof($OwnerClass$));
public event $HandlerType$ $EventName$
{
add { AddHandler($EventName$Event, value); }
remove { RemoveHandler($EventName$Event, value); }
}
protected void Raise$EventName$()
{
RoutedEventArgs args = new RoutedEventArgs($EventName$Event);
RaiseEvent(args);
}
]]></Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
2.2 代码片段导入
在 Visual Studio 中,导入刚刚创建的代码片段:
- 打开 Visual Studio。
- 选择
工具 (Tools)
>代码片段管理器 (Code Snippet Manager)
。 - 在“代码片段管理器”中选择语言为
Visual C#
。 - 点击
导入 (Import)
按钮,选择刚刚创建的routedevent.snippet
文件并导入。
2.3 使用
在 C# 文件中输入 routevent
然后按 Tab
键两次,就会自动生成一个路由事件的模板。