Есть два подхода к этому, каждый со своими плюсами и минусами:
Шаблоны позволяют повторно использовать раздел XAML. Существует (почти всегда) отсутствие кода, и вы, конечно, не будете получать от Button
. Например, если вы хотите иметь граничат текстовое поле повторяется в ItemsControl
:
<DataTemplate x:Key="MyDataTemplate">
<Border>
<TextBox/>
</Border>
</DataTemplate>
Или в классе кнопки вы используете ContentTemplate
:
<Button ContentTemplate={StaticResource MyTemplate}>
</Button>
И вы будете использовать его в качестве XTemplate="{StaticResource MyDataTemplate}"
в существующий который использовал шаблоны. Это обычно путь. Обратите внимание, что имя свойства не будет Template
, но ItemTemplate
, или ContentTemplate
или что-то подобное.
Исключение, если вы хотите пользовательские поведения, в этом случае, когда вы используете UserControl. Это технически может унаследовать от Button
, хотя вы, как правило, этого не сделали. Подклассификация базового элемента управления должна выполняться только в том случае, если вы уверены, что на самом деле хотите это сделать. После того, как ваш пользовательский элемент управления создается, синтаксис будет выглядеть подобно тому, что у вас есть в вашем вопросе:
<local:MyButton>
</local:MyButton>
Обратите внимание, что «местный» является выдуманным XMLNS. Пользовательский элемент управления будет состоять из любых элементов управления, которые вы хотели бы, и вы можете подвергать «атрибуты» используемому коду через свойства зависимостей.
Будьте немного более ясны, вы можете создать пользовательские элементы управления (и даже наследовать от кнопки, хотя я сомневаюсь, что вы действительно хотите это сделать). Не могли бы вы уточнить, где вы боретесь? – BradleyDotNET
Хорошо, я думаю, вы знаете, что вы можете создавать эти шаблоны для каждого виджета (типа) в wpf. В моем приложении я создал границу с текстовым полем. Но теперь я хочу создать тип с этими виджетами. Поэтому я могу импортировать его и использовать его так часто, как хочу. Надеюсь, это было хорошее объяснение ... Ну, я загружу картинку. – Sens4
Я думаю, что я как бы понял. Дайте мне знать, поможет ли мой ответ! Также, пожалуйста, отредактируйте эту информацию комментария в свой пост, это поможет ее прояснить. Если вы разместите ссылку на изображение, я загружу для вас. – BradleyDotNET