locked
Aplicação de Styles em Controles Dinâmicos RRS feed

  • Pergunta

  •  Gostaria de aplicar styles em um Tab Item dinâmico. Realizei algumas tentativas sem sucesso.

    Abraço,
    Fabio

    segunda-feira, 2 de fevereiro de 2009 15:58

Todas as Respostas

  • Olá

     

    Bem, eu ainda não apliquei nenhum estilo em tab dinamicamente, você já aplicou em alguma coisa dinamicamente ?

     

    Seguinte:

    Eu sei que você pode criar um estilo no App.xaml  e depois chamar ele no code-behind.

    Example:

       
     <Application.Resources> 
     <Style x:Key="StyleTextBox" TargetType="TextBlock">  
                <Setter Property="Foreground" Value="Red"></Setter> 
                <Setter Property="FontSize" Value="16"></Setter> 
            </Style> 
     
        </Application.Resources> 

    Depois no code-behind

      txtTexto.Style = ((Style)Application.Current.Resources["TextBoxStyle"]); 

     

    Bem, eu comecei a fazer uns teste no Tab, so que ele não quer fucionar, ainda não sei porque!

    Acho que é por causa da 

    TargetType

    Abraços, e posta se conseguir solução, eu vou tentar mais tarde de novo

    Flávia Moreira

    http://flamoreira.wordpress.com

     

     


    Flavia Moreira
    quarta-feira, 4 de fevereiro de 2009 16:55
  • Oi Flavia, eu sou designer. Estou me aventurando na area de programação. Infelizmente nunca apliquei nenhum styles em itens dinamicos.

    Mas lembra esse codigo que vc forneceu. Tentei colocar essa linha para aplicação de resource e também não funcionou:

    private void btnClick_Click(object sender, RoutedEventArgs e)

    {

    TabItem ti = new TabItem();

    ti.Header = "Nova Tab";

    TextBlock t = new TextBlock();

    t.Text = "Conteudo";

    ti.Content = t;

    tbConteudo.Items.Add(ti);

    ti.Style = (Style) FindResource("nome da resource");

    tbConteudo.TabStripPlacement =
    Dock.Bottom;

    }

    quarta-feira, 4 de fevereiro de 2009 18:24
  • Oi consegui

    Bem você deve criar um style para o seu TabControl e tabItem  e colocar dentro do App.xaml, 

    Feito isso: repare que você deverá fornecer a Key. 
    Como o Exemplo à cima para o textblock
    certo? 
    Pois bem
     private void btnClick_Click(object sender, RoutedEventArgs e)  
            {  
              
     
                 ti = new TabItem();  
               
                ti.Header = "Nova Tab";  
                ti.Style = ((Style)Application.Current.Resources["teste"]);  
          
                TextBlock t = new TextBlock();  
     
                t.Text = "Conteudo";  
     
                tti.Content = t;  
     
                ti.Style = ((Style)Application.Current.Resources["TabItemStyle"]);  
                ti.MouseLeftButtonDown +=new MouseButtonEventHandler(ti_MouseLeftButtonDown);  
                ti.GotFocus += new RoutedEventHandler(ti_GotFocus);  
                tbConteudo.Items.Add(ti);  
                
     
            //    tbConteudo.TabStripPlacement = Dock.Bottom;  
     
                //txtTexto.Style = ((Style)Application.Current.Resources["TextBoxStyle"]);  
     
            } 
     
    Repare que eu tirei do código 

    // tbConteudo.TabStripPlacement = Dock.Bottom;


    Abraços
    Flávia Moreira
    http://flamoreira.wordpress.com

    ps: Amigo, caso responda sua pergunta marque como respondida


    Flavia Moreira
    • Sugerido como Resposta Flavia Moreira quarta-feira, 4 de fevereiro de 2009 23:42
    quarta-feira, 4 de fevereiro de 2009 20:50
  •  Oi, obtive o seguinte erro, para evitar qualquer erro meu copie seu codigo. 

    Error 1 
    The name 'ti' does not exist in the current context D:\Documents and Settings\Default\Meus documentos\Expression\Expression Blend Projects\dynamicTabControl\dynamicTabControl\Window1.xaml.cs 26 14 dynamicTabControl

    Error 2 
    The name 'ti' does not exist in the current context D:\Documents and Settings\Default\Meus documentos\Expression\Expression Blend Projects\dynamicTabControl\dynamicTabControl\Window1.xaml.cs 28 13 dynamicTabControl

    Error 3 
    The name 'ti' does not exist in the current context D:\Documents and Settings\Default\Meus documentos\Expression\Expression Blend Projects\dynamicTabControl\dynamicTabControl\Window1.xaml.cs 29 13 dynamicTabControl

    Error 4 
    The name 'tti' does not exist in the current context D:\Documents and Settings\Default\Meus documentos\Expression\Expression Blend Projects\dynamicTabControl\dynamicTabControl\Window1.xaml.cs 35 13 dynamicTabControl

    Error 5 
    The name 'ti' does not exist in the current context D:\Documents and Settings\Default\Meus documentos\Expression\Expression Blend Projects\dynamicTabControl\dynamicTabControl\Window1.xaml.cs 37 13 dynamicTabControl

    Error 6 
    The name 'ti' does not exist in the current context D:\Documents and Settings\Default\Meus documentos\Expression\Expression Blend Projects\dynamicTabControl\dynamicTabControl\Window1.xaml.cs 38 13 dynamicTabControl

    Error 7 
    The type or namespace name 'MouseButtonEventHandler' could not be found (are you missing a using directive or an assembly reference?) D:\Documents and Settings\Default\Meus documentos\Expression\Expression Blend Projects\dynamicTabControl\dynamicTabControl\Window1.xaml.cs 38 42 dynamicTabControl

    Error 8 
    The name 'ti_MouseLeftButtonDown' does not exist in the current context D:\Documents and Settings\Default\Meus documentos\Expression\Expression Blend Projects\dynamicTabControl\dynamicTabControl\Window1.xaml.cs 38 66 dynamicTabControl

    Error 9 
    The name 'ti' does not exist in the current context D:\Documents and Settings\Default\Meus documentos\Expression\Expression Blend Projects\dynamicTabControl\dynamicTabControl\Window1.xaml.cs 39 13 dynamicTabControl

    Error 10 
    The name 'ti_GotFocus' does not exist in the current context D:\Documents and Settings\Default\Meus documentos\Expression\Expression Blend Projects\dynamicTabControl\dynamicTabControl\Window1.xaml.cs 39 51 dynamicTabControl

    Error 11 
    The name 'ti' does not exist in the current context D:\Documents and Settings\Default\Meus documentos\Expression\Expression Blend Projects\dynamicTabControl\dynamicTabControl\Window1.xaml.cs 40 34 dynamicTabControl

    Obrigado,
    Fabio
    segunda-feira, 16 de fevereiro de 2009 00:07
  • Oi Pedro!
    Você copiou o código, risos! as vezes sai errado quando colocamos o código aqui.


    Sorry.

    Repare : a variavel tti, não existe é ti.

    Outra coisa, o Evento GotFocus voce pode tirar... eu não implementei e nem passei
    O que vale para você é so o estilo, nem tão pouco o evento LeftButtonDown. 

    Só para o estilo:  

    ti.Style = ((Style)Application.Current.Resources["TabItemStyle"]);

    não era isso que você queria?

    Você quer o código fonte?

    Abraços
    Flávia

    Flavia Moreira
    segunda-feira, 16 de fevereiro de 2009 19:20