Start Debugging
2018-04-18 Atualizado 2023-11-05 xamarinxamarin-forms Edit on GitHub

Começando com CSS no Xamarin Forms 3

Aprenda a usar Cascading StyleSheets (CSS) no Xamarin Forms 3, incluindo estilos CDATA inline e arquivos CSS embutidos.

Há algumas novidades chegando com essa nova versão do Xamarin Forms, e uma delas é Cascading StyleSheets (CSS). Sim, isso mesmo, CSS no XAML. Ainda não estou certo de quão útil será nem de quanto vai pegar — algumas funcionalidades ainda estão faltando — mas suponho que será uma boa adição para quem quiser migrar do desenvolvimento web.

Para ir direto ao ponto, há duas formas de adicionar CSS à sua aplicação:

Uma vez incluído o CSS, você o usa especificando StyleClass ou a propriedade abreviada class no seu elemento XAML.

Para exemplificar, faremos algumas alterações em um novo projeto Xamarin Forms usando o template master detail. Vai lá — File > New project e atualize para o Xamarin Forms 3.

Primeiro, o caminho via CDATA. Suponha que queremos deixar os elementos da nossa lista em laranja. Vá até ItemsPage e dentro do XAML, acima da tag <ContentPage.ToolbarItems>, coloque isto:

<ContentPage.Resources>
    <StyleSheet>
        <![CDATA[

            .my-list-item {
                padding: 20;
                background-color: orange;
                color: white;
            }

        ]]>
    </StyleSheet>
</ContentPage.Resources>

Agora precisamos usar essa nova classe .my-list-item. Encontre o ItemTemplate da sua ListView e note o StackLayout interno — esse é o nosso alvo. Remova aquele padding e aplique a nossa classe assim:

<StackLayout Padding="10" class="my-list-item">

E é isso.

Agora, vamos olhar a segunda abordagem, com arquivos CSS embutidos. Primeiro, crie uma nova pasta no app chamada Styles e dentro dela crie um novo arquivo chamado about.css (vamos estilizar a página About nesta parte). Depois de criar o arquivo, lembre-se de clicar com o botão direito > Properties e definir o Build action como Embedded resource; senão não vai funcionar.

Agora na nossa view — AboutPage.xaml — adicione o seguinte logo acima do elemento <ContentPage.BindingContext>. Isso vai referenciar nosso arquivo CSS na página. O fato do caminho começar com ”/” significa que ele parte da raiz. Você também pode especificar caminhos relativos omitindo a primeira barra.

<ContentPage.Resources>
   <StyleSheet Source="/Styles/about.css" />
</ContentPage.Resources>

Quanto ao CSS, vamos fazer pequenas mudanças no título do app e no botão learn more, assim:

.app-name {
    font-size: 48;
    color: orange;
}

.learn-more {
    border-color: orange;
    border-width: 1;
}

Cuidado: font-size e border-width são valores simples (double); não especifique “px”, porque isso não vai funcionar e gera erro. Suponho que os valores informados sejam em DIP (device independent pixels). O mesmo vale para outras propriedades como thickness, margin, padding etc.

Tudo bonitinho, mas tenha em mente que há limitações:

Para uma lista completa do que é e do que não é suportado, dê uma olhada no pull request feito para essa funcionalidade no GitHub. Caso algo dê errado / não funcione, o repositório original do exemplo não está mais disponível no GitHub, mas os trechos acima já dão para começar.

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Voltar