Busca Online:

 
Seja bem vindo(a) Visitante, você não está logado deseja logar
no portal para participar de serviços e promoções ? clique aqui.


No caso de perder a senha, acesse aqui e receba por e-mail.
Deseja entrar em contato conosco, acesse aqui e mande-nos um e-mail.

Usando Themes ASP.NET 2.0 (Parte 2)

por Mauricio Junior em 1/1/2011 0

Anteriormente falei e mostrei o conceito, problema e solução usando o “themes” do Visual Studio.NET 2005. Para quem quiser verificar sobre a “Parte 1”, favor acessa o link abaixo:

 

Parte 1 - Themes

 

 

Conceito

 

Uma nova característica e do ASP.NET 2.0 é deixar os usuários terem mais controle no visual onde possa sentir e ver uma página web. Um tema pode ser definido cores, nome de fontes, tamanho e estilo de cada controle. O novo “skin” suportado no ASP.NET 2.0 é uma extensão da mesma idéia do CSS.

 

Usuários individuais podem selecionar um tema para várias opções avaliadas para o mesmo, e especificar o tema deles escolhendo determinado “skin”. O “skin” é um cliente servidor relativo como se fosse um CSS stylesheet, ou seja, é similar a um arquivo CSS mas diferente, um “skin” pode sobrescrever várias propriedades visuais daquele específico controle de um página ou de várias páginas.

 

Você pode armazenar várias versões de imagens para o tema, cada tema uma imagem diferente ou atribuir várias imagens para todos os temas baseado no corrente “skin” usado.

 

Os temas ficam dentro da pasta /App_Themes, e contém os seguintes itens:

- Stylesheet.css (arquivo que define a aparência dos objetos HTMLs);

- Skin File – (Eles são arquivos que definem a aparência de controles clientes servidores ASP.NET. Você pode pensar deles como se fossem arquivos stylesheet clientes servidores;

- Outros recursos como imagens.

 

Problema

 

Preciso diferenciar os meus componentes de tela usando “stylesheet”, ou seja, um TextBox quero que tenha a letra em azul e outro tracejado. Preciso adicionar vários componentes diferentes na tela usando ou não estilo “stylesheet.css”. Além de mudar os estilos, preciso adicionar os “themes” para todas as páginas dentro do meu projeto.

 

 

Solução

 

O primeiro de tudo é criar um “Estilo.css”, o passo seguinte é colocar dentro do “skin” a “CssClass” para atribuir os estilos de cores e fontes. Cliquei com o botão direito do mouse em cima da pasta “Themes” e escolhi a opção “Add New Item...”. (Referência Theme2.1.1)

 

Referência: Theme2.1.1

 

 

A tela seguinte escolhi o tipo de arquivo na tela de  “templates”. O tipo escolhido foi “Style Sheet”. (Referência Theme2.1.2).

 

 

Referência: Theme2.1.2

 

Coloquei o nome do arquivo de “Estilo.css”. Em seguida cliquei no botão ADD, o mesmo foi adicionado dentro da tela de Solution Explorer e dentro da página Theme. Dentro do arquivo “css” adicionei uma classe para configurar um label. (Referência Theme2.1.3).

 

 

.Label

{

    background-color:Blue;

    font-size:20px;

}

 

Referência: Theme2.1.3

 

O “background-color: Blue” coloca o fundo da cor azul, o “font-size:20px” define o tamanho da fonte mostrada em tela.

 

Na “Parte 1” mostrei como criar o “skin” do projeto, o passo seguinte é adicionar um “label” dentro do arquivo criado anteriormente chamado “SkinFile.skin”. (Referência Theme2.1.4)

 

 

 

<asp:Label runat="server" CssClass="Label" />

 

Referência: Theme2.1.4

 

 

Adicionei o código da referência (Theme2.1.4) dentro do skin e agora adicionarei  uma tag dentro do arquivo de configuração chamado web.config. Neste arquivo de configuração e dentro da tag <system.web>, adicionei uma tag para utilizar em todas as páginas automaticamente os estilos adicionados no skin do projeto. (Referência Theme2.1.5).

 

 

 

  <pages theme="Theme" />

 

Referência: Theme2.1.5

 

 

Esse código atribui para todas as páginas o tema criado; dessa forma; só adicionarei o controle “Label” dentro de qualquer página ASPX. Dentro do arquivo “DEFAULT.ASPX” criado anteriormente coloquei um objeto de tela. (Referência Theme2.1.6)

 

 

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Projeto Themes</title>

    <link rel="stylesheet" type="text/css" href="App_Themes/Theme/Estilo.css" />

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <asp:TextBox runat="server" ID="txt"></asp:TextBox>

        <asp:Label id="lbl" runat="server" Text="Label"></asp:Label>

    </div>

    </form>

</body>

</html>

 

Referência: Theme2.1.6

 

 

A referência (Theme2.1.6) mostro toda a página “default.aspx”. Logo nas primeiras linhas, adicionei o “stylesheet”. (Referência Theme2.1.7)

 

 

<link rel="stylesheet" type="text/css" href="App_Themes/Theme/Estilo.css" />

 

Referência: Theme2.1.7

 

Adicionei o estilo e em seguida o controle Label de acordo com os detalhes da referência (Theme2.1.8).

 

 

  <asp:Label id="lbl" runat="server" Text="Label"></asp:Label>

 

Referência: Theme2.1.8

 

 

Referência: Theme2.1.9

 

Na execução do projeto, note que o label adicionado anteriormente no skin com um estilo puxado do arquivo de stylesheet foi executado com sucesso. Da forma que fiz para pegar o estilo, todos os label’s de todas as páginas estarão com o fundo azul, como na referência (Theme2.1.9).

 

 

Outro Problema

 

Em caso de sites ou sistemas, não quero que todos os label’s fiquem do fundo de cor azul e sim alguns label’s poderão ficar. Então tenho um problema, quero adicionar para alguns label’s a cor no fundo azul e outros labels não. Da forma que está configurado hoje, todos os labels estarão com o fundo azul. 

 

Para a solução desse problema, existe o atributo “SkinId” que serve para diferenciação, ou seja, preciso adicionar mais um controle do tipo label no skinFile.skin com o atributo “SkinID”, depois de adicionar, preciso colocar na página o controle com o mesmo “SkinId”.

 

  

Solução

 

 

Como falei anteriormente, para solucionar o problema de não ficar sempre um label com o fundo da cor azul, preciso usar o atributo “SkinId” tanto no arquivo de “skin” quanto na página. Para solucionar o problema, adicionei mais um novo label dentro do “skinFile.skin” que fica dentro da pasta “Theme”. (Referência Theme2.1.10).

 

 

 

<asp:TextBox runat="server" SkinId="teste" ForeColor="Yellow" />

<asp:Label runat="server" CssClass="Label" />

<asp:Label runat="server" SkinId="labelTeste" />

 

Referência: Theme2.1.10

 

 

Note que acrescentei mais um label apenas sem o uso do atributo CssClass e com o “SkinId=labelTeste”. Depois de adicionado, coloquei mais um controle de tela na página “Default.aspx” com o mesmo “SkinId”. (Referência Theme2.1.11).

 

 

 

<asp:Label id="lbl" runat="server" SkinId="labelTeste" Text="Label"></asp:Label>

 

Referência: Theme2.1.11

 

 

Um label foi adicionado na página “Default.aspx” com o nome do SkinId igual ao do arquivo skinFile.skin. Para melhor entendimento segue todo o código da página “Default.aspx”. (Referência Theme2.1.12)

 

 

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Projeto Themes</title>

    <link rel="stylesheet" type="text/css" href="App_Themes/Theme/Estilo.css" />

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <asp:TextBox runat="server" ID="txt"></asp:TextBox>

        <br />

        <asp:Label id="Label1" runat="server" Text="Label"></asp:Label>

        <asp:Label id="lbl" runat="server" SkinId="labelTeste" Text="Label"></asp:Label>

           </div>

    </form>

</body>

</html>

 

Referência: Theme2.1.12

 

Executei o projeto e retornou o resultado conforme a (Referência Theme2.1.13).

 

Referência: Theme2.1.13

 

Espero que tenha ajudado um pouco. Bom, fico por aqui. Qualquer dúvida, favor entrar em contato através do e-mail mauricio@aspneti.com

 

 

Livros Publicados

 

 

 

Mauricio Junior

www.mauriciojunior.org

www.aspneti.com

 

voltar   comente  subir

Download Copy





 
Mauricio Junior Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog: blog.mauriciojunior.org, Site pessoal www.mauriciojunior.org



Comentários:

Comentado por: Bush - 17/12/2007 2:30:13
Bush
Comentado por: Yair - 17/12/2007 14:22:12
Yair
Comentado por: corrugat - 18/12/2007 0:01:44
corrugat

Comente (dê sua opinião):

Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Windows Phone 7 e DLNA
Finanças para os filhos
GridView Parte III
Cortando String XML
Montando Menu Dinâmico com Banco de Dados
Escrevendo e Controlando Log de Erro
Vírus - Link com Vírus
Ebook: Aprendendo Desenvolver WebServices
Montando estrutura de um site MVC 2 com Visual Studio .NET 2010
Nova forma de utilizar cache utilizando Visual Studio.NET 2005
Microsoft Recite
Windows Form - Retornando valor entre formulários
II Encontro .NET em Brasília
Exemplos de Queries Linq
Generics usando Object DataSource
Crie a sua própria rede social no ning
Ativando debug do VS no Vista
Copiando Script
Filtrar o DataTable Dinamicamente
Criptografia de String de Conexão no Web.Config
Vídeos para download
2 Eventos, 1 dia: Mix On UniEURO
Criando TreeView com Visual Studio.NET 2005 (passo 1)
Trabalhando com diretório e arquivo
Conecte - Os games
iSecurity Password Free
Construindo o Windows 8
Chamando Programas de Dentro do Windows Forms
Código fonte do livro DESENVOLVENDO WEBSERVICES
Microsoft com XBox no Windows Phone 7
Padrão de Codificação
Insistência com Vírus por E-mail
Comunicação .NET e VB 6.0 – Parte I
Vídeo: Windows Phone com Windows Mobile 7
Mais detalhes sobre o HTC Touch HD 2 com o possível Windows Mobile 7




eCode10 Magazine 4 Edição

Baixe a sua sem pagar nada, basta apenas ter um cadastro na comunidade aspneti.com ou ser usuário do ecode10.com.



Edições anteriores
LAYERDEV

Notícias *

Lenovo de 14 polegadas IdeaPad

Veja o novo notebook Lenovo IdeaPad...

Windows 8 Store

Channel9 publica um vídeo da Windows Store...

Sony Vaio série Z

Novo Vaio Ultrabook? ou não Ultrabook?...

Samsung quer comprar RIM

Imagine se juntar as duas companhias...

Surface 2.0 mostrado

Novo Surface é mostrado de forma incrível...

Skype Tablet

Será que esse skype tablet pega mesmo?...

Lenovo e o seu novo Ultrabook

Ultrabook chega também pela Lenovo...

Promoções de livros móveis .NET

Baixa agora o seu e aprenda a programar....

A Era dos UltraBooks

Os modelos mais dos Ultrabooks...




NETITC