Я хочу создать настраиваемый элемент управления, который расширяет встроенный элемент управления, а затем имеет шаблон, который обертывает этот элемент управления контейнером?Шаблон управления, который обертывает другой элемент управления в XAML
C# класс:
class ExtraBorderTextBox : TextBox {}
Xaml:
<ControlTemplate>
<Border>
<TextBox/>
</Border>
</ControlTemplate>
Это оленья кожа»работа, потому что TextBox
в шаблоне управления не мой пользовательский элемент управления, это второй экземпляр.
Мне нужен доступ к свойствам и событиям на TextBox
, имея другой родитель, не имеет смысла, мне нужно было бы воспроизвести все это в моем классе.
Это упрощенный пример; Представьте, что Border
заменен на ContentControl
, который имеет собственный шаблон управления длиной 50 строк. Думаю, я хочу что-то вроде ContentPresenter
(как у меня есть в ContentControl
), но нет ничего похожего на «ControlPresenter». Правильно? Я что-то упускаю, или я придерживаюсь репликации моего элемента управления содержимым для TextBox или репликации поведения и презентации TextBox
для моего контроля содержимого?
Спасибо.
Обновление: Здесь есть ответ, который делает то, что я хочу, чтобы скопировать шаблон по умолчанию для System.Windows.Controls.TextBox. Это будет делать то, что я хочу; Я могу вставить свой контейнер в это. Я надеялся, что WPF предоставит такой способ, который будет более удобен, чтобы сделать что-то подобное, что-то вроде шаблона adorner/decorator.
Есть ли способ сделать это лучше в некотором роде? Использует ли что-то вроде Expression Blend сделать это, чтобы мне не пришлось вручную редактировать XAML, вставленный с веб-страницы?
Что именно вы хотите достичь? – ThomasAndersson