Resharper. Как добавить шаблон xaml - PullRequest
0 голосов
/ 20 апреля 2020

Как добавить в шаблон Resharper с расширением .xaml? Например, я пытаюсь добавить Window.xaml, и проблема в этой строке <Window x:Class="ADONET_Samples.UserControls.Window1" как вставить в "Window1" имя вашей формы XAML.

<Window x:Class="ADONET_Samples.UserControls.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:ADONET_Samples.UserControls"
    mc:Ignorable="d"
    Title="Window1" Height="450" Width="800">
<Grid>

</Grid>

1 Ответ

1 голос
/ 21 апреля 2020

Для этого вам нужно использовать многофайловый шаблон. Сделайте это так:

  1. Скопируйте код в конце этого поста в текстовый файл с именем WindowTemplate.DotSettings.
  2. Откройте Проводник шаблонов ReSharper через Расширения → ReSharper → Инструменты → Проводник шаблонов ... .
  3. Откройте вкладку Шаблоны файлов и импортируйте файл WindowTemplate.DotSettings.

Вы должны увидеть Шаблон называется Custom Window . Если вам интересен код, вы можете открыть его. Вы также можете добавить шаблон в быстрый список при установке слоя в Проводнике шаблонов на Smart .

При использовании Alt + Insert в Solution Explorer и открыв More ... , будет шаблон. Выберите его и введите имя файла. Теперь генерация кода завершена.

Однако вы не сможете скомпилировать его со следующей ошибкой: CS0103: The name 'InitializeComponent' does not exist in the current context. Вы должны решить эту проблему вручную для каждого файла, открыв файл *.csproj и найдя следующий код:

<AdditionalFiles Include="Demo3.xaml">
  <Generator>MSBuild:Compile</Generator>
  <SubType>Designer</SubType>
</AdditionalFiles>

Замените его на (обратите внимание Page вместо AdditionalFile):

<Page Include="Demo3.xaml">
  <Generator>MSBuild:Compile</Generator>
  <SubType>Designer</SubType>
</Page>

Последний, но не менее важный код шаблона:

<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
    <s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/@KeyIndexDefined">True</s:Boolean>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Description/@EntryValue">Custom Window</s:String>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Text/@EntryValue">&lt;Window x:Class="$Namespace$.$Class$"&#xD;
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&#xD;
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"&#xD;
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"&#xD;
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"&#xD;
    xmlns:local="clr-namespace:$Namespace$"&#xD;
    mc:Ignorable="d"&#xD;
    Title="$Class$" Height="450" Width="800"&gt;&#xD;
&lt;Grid&gt;&#xD;
&#xD;
&lt;/Grid&gt;&#xD;
&lt;/Window&gt;</s:String>
    <s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Reformat/@EntryValue">True</s:Boolean>
    <s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/ShortenQualifiedReferences/@EntryValue">True</s:Boolean>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/CustomProperties/=FileName/@EntryIndexedValue">Window</s:String>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/CustomProperties/=Extension/@EntryIndexedValue">xaml</s:String>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/CustomProperties/=ValidateFileName/@EntryIndexedValue">False</s:String>
    <s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Applicability/=File/@EntryIndexedValue">True</s:Boolean>
    <s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Scope/=55C906A5BD591341AE313A07A8F303DE/@KeyIndexDefined">True</s:Boolean>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Scope/=55C906A5BD591341AE313A07A8F303DE/Type/@EntryValue">InAnyXamlProject</s:String>
    <s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Field/=Namespace/@KeyIndexDefined">True</s:Boolean>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Field/=Namespace/Expression/@EntryValue">fileDefaultNamespace()</s:String>
    <s:Int64 x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Field/=Namespace/InitialRange/@EntryValue">-1</s:Int64>
    <s:Int64 x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Field/=Namespace/Order/@EntryValue">0</s:Int64>
    <s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Field/=Class/@KeyIndexDefined">True</s:Boolean>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Field/=Class/Expression/@EntryValue">getAlphaNumericMainFileNameWithoutExtension()</s:String>
    <s:Int64 x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Field/=Class/InitialRange/@EntryValue">-1</s:Int64>
    <s:Int64 x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Field/=Class/Order/@EntryValue">1</s:Int64>
    <s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Section/=60769A869101874889D7DC3F51C8EEA7/@KeyIndexDefined">True</s:Boolean>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Section/=60769A869101874889D7DC3F51C8EEA7/LocationSelectorName/@EntryValue">manual</s:String>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Section/=60769A869101874889D7DC3F51C8EEA7/LocationSelectorConfig/@EntryValue">&lt;RelativeConfig File="$NAME$.xaml.cs" /&gt;</s:String>
    <s:Int64 x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Section/=60769A869101874889D7DC3F51C8EEA7/Order/@EntryValue">0</s:Int64>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0CB2F5C22C4A274F8D1425E1F1DA05CF/Section/=60769A869101874889D7DC3F51C8EEA7/SectionPlain/Text/@EntryValue">using System;&#xD;
using System.Collections.Generic;&#xD;
using System.Linq;&#xD;
using System.Text;&#xD;
using System.Threading.Tasks;&#xD;
using System.Windows;&#xD;
using System.Windows.Controls;&#xD;
using System.Windows.Data;&#xD;
using System.Windows.Documents;&#xD;
using System.Windows.Input;&#xD;
using System.Windows.Media;&#xD;
using System.Windows.Media.Imaging;&#xD;
using System.Windows.Navigation;&#xD;
using System.Windows.Shapes;&#xD;
&#xD;
namespace $Namespace$&#xD;
{&#xD;
    /// &lt;summary&gt;&#xD;
    /// Interaction logic for $Class$.xaml&#xD;
    /// &lt;/summary&gt;&#xD;
    public partial class $Class$ : Window&#xD;
    {&#xD;
        public $Class$()&#xD;
        {&#xD;
            InitializeComponent();&#xD;
        }&#xD;
    }&#xD;
}&#xD;
</s:String></wpf:ResourceDictionary>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...