it-roy-ru.com

Как извлечь шаблон элемента управления по умолчанию в Visual Studio?

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

49
foreyez

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

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

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

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

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

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

enter image description here

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

enter image description here

  1. Нажмите на кнопку OK.
74
Sheridan

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

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

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

32
Royi Mindel

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

7
erodewald

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

2
Adi Lester

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

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

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

0
John Christopher Linstrum