2013-11-19 2 views
0

Я создал обработчик события для всех текстовых полей, как это:Wpf Пользовательские Textbox Event Handler не работает

<Style TargetType="{x:Type TextBox}"> 
     <EventSetter Event="LostFocus" Handler="TextBox_LostFocus" /> 
     <EventSetter Event="GotFocus" Handler="TextBox_GotFocus"/> 
    </Style> 

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

+1

ли стиль применяется к пользовательскому типу, обычно он пришел на место переопределения метаданных к дпу стиля в статическом CTOR в вашем производном настраиваемом элементе управления это объясняет, почему ваши обработчики не применяются. Опубликовать свой контроль реализации. –

ответ

0

Когда Style используется без объекта x:Key, он будет применяться строго на TextBox элементах. Вы должны либо установить ваши CustomTextBox в TargetType или вы могли бы использовать BasedOn свойства так:

<Style TargetType="{x:Type TextBox}"> 
    <EventSetter Event="LostFocus" Handler="TextBox_LostFocus" /> 
    <EventSetter Event="GotFocus" Handler="TextBox_GotFocus"/> 
</Style> 

<Style TargetType="{x:Type my:CustomTextBox}" BasedOn="{StaticResource {x:Type TextBox}}"> 
</Style>