Как извлечь шаблон элемента управления по умолчанию в Visual Studio? - PullRequest
51 голосов
/ 11 января 2012

Мне интересно, как я могу извлечь (получить копию) шаблона по умолчанию для данного элемента управления с помощью Visual Studio. Я знаю, что это можно сделать с помощью Expression Blend (щелкните правой кнопкой мыши элемент управления, «Изменить шаблон» -> «Редактировать копию ...»), который затем копирует шаблон элемента управления по умолчанию в мой Xaml. Но можно ли вообще это сделать с помощью Visual Studio?

Ответы [ 5 ]

77 голосов
/ 29 января 2015

2015 обновление с четкими инструкциями

В Visual Studio 2013 вы можете получить ControlTemplate элемента управления по умолчанию за несколько простых шагов.

  1. В конструкторе WPF выберите соответствующий элемент управления или поместите курсор мыши на соответствующий элемент управления в XAML.

  2. Нажмите F4 , чтобы открыть окно свойств.

  3. Откройте категорию Разное , чтобы найтисвойство Template или введите Template в поле поиска в верхней части окна.

  4. Нажмите на маленький квадрат справаполя Шаблон и выберите параметр Преобразовать в новый ресурс ... :

enter image description here

Во всплывающем диалоговом окне назовите новый ControlTemplate для добавления и определите, где вы хотите его определить:

enter image description here

Нажмите кнопку OK .
33 голосов
/ 25 февраля 2013

В Visual studio - щелкните правой кнопкой мыши элемент управления, выберите свойства,

В окне свойств найдите свойство шаблона и щелкните его правой кнопкой мыши, выберите Извлечь значение из ресурса

Это создаст копию шаблона в XAML для работы с вами.

9 голосов
/ 23 мая 2012

Просто чтобы обновить этот вопрос, в VS 11 конструктор XAML позволяет вам делать это так же, как Expression Blend.

2 голосов
/ 11 января 2012

Насколько я знаю, это невозможно.Однако вы можете использовать Показать мне шаблон , чтобы просмотреть шаблон по умолчанию для данного элемента управления.

0 голосов
/ 02 июня 2018

Следует помнить одну вещь: если у вас уже есть определенный стиль, предназначенный для данного элемента управления, тогда все описанные выше параметры будут отключены. В моем файле App.xaml был следующий фрагмент кода:

<Application.Resources>
    <Style TargetType="Button">
        <Setter Property="IsTabStop" Value="False"/>
    </Style>
</Application.Resources>

Я вырывал свои волосы, пытаясь выяснить, почему параметры «изменить копию ...» и «преобразовать в новый ресурс», описанные в других ответах, были отключены для моей кнопки (которая была определена совершенно другой файл). Я закомментировал приведенный выше код стиля для кнопки, и вдруг обе опции больше не были отключены. Мораль истории: VS не будет генерировать стиль, содержащий копию шаблона для вас, если стиль уже существует для этого элемента в любом месте вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...