none
Tem como criar uma função para um controle? RRS feed

  • Pergunta

  • Bom dia,

    Eu sei q tem como criar estilos e triggers em alguma propriedade de um controle no App.xaml e ele sempre executar, por exemplo o código a baixo:

    <Style TargetType="{x:Type TextBox}">
        <Setter Property="BorderBrush" Value="Black"/>
        <Style.Triggers>
            <Trigger Property="IsFocused" Value="True">
                <Setter Property="Background" Value="#FFFFFFC5" />
            </Trigger>
        </Style.Triggers>
    </Style>

    Nele todas minhas TextBox  tem a borda preta e quando recebe o foco fica com o background na cor #FFFFFC5.

    Agora minha pergunta é a seguinte, tem como eu fazer isso com um evento e uma função? Por exemplo, tem como fazer com que todas as TextBox no evento KeyDown chamar a função text_KeyDown(object sender, KeyEventArgs e)? é possível fazer isso ou algo parecido?

    att,
    Gustavo Freitas

    terça-feira, 3 de dezembro de 2013 12:49

Respostas

  • Crie uma classe e herde ela da classe TextBox. Então sobreescreva o método OnKeyDown.

    Exemplo:

    public class MinhaTextBox : TextBox
    {
        protected override void OnKeyDown(KeyEventArgs e)
        {
            base.OnKeyDown(e);
            //Chame a tal função aqui;
        }
    }

    Ai, no designer do seu aplicativo substitua todos os TextBox por MinhaTextBox.

    Veja se esse conceito lhe serve.


    Herbert Lausmann

    • Sugerido como Resposta Ucha quinta-feira, 16 de janeiro de 2014 13:32
    • Marcado como Resposta Gustavo_Freitas quarta-feira, 26 de novembro de 2014 10:26
    segunda-feira, 6 de janeiro de 2014 16:42

Todas as Respostas

  • Olá,

    Não ficou muito clara a sua questão, poderia explicar melhor?


    Herbert Lausmann

    terça-feira, 31 de dezembro de 2013 09:58
  • eu queria fazer com que todos os TextBox da minha aplicação chame uma função específica no evento KeyDown, sem ter que ir TextBox por TextBox e fazer a chamada da função manualmente.

    att,
    Gustavo Freitas

    segunda-feira, 6 de janeiro de 2014 12:52
  • Crie uma classe e herde ela da classe TextBox. Então sobreescreva o método OnKeyDown.

    Exemplo:

    public class MinhaTextBox : TextBox
    {
        protected override void OnKeyDown(KeyEventArgs e)
        {
            base.OnKeyDown(e);
            //Chame a tal função aqui;
        }
    }

    Ai, no designer do seu aplicativo substitua todos os TextBox por MinhaTextBox.

    Veja se esse conceito lhe serve.


    Herbert Lausmann

    • Sugerido como Resposta Ucha quinta-feira, 16 de janeiro de 2014 13:32
    • Marcado como Resposta Gustavo_Freitas quarta-feira, 26 de novembro de 2014 10:26
    segunda-feira, 6 de janeiro de 2014 16:42