Usar themes por si só é uma forma muito simplistica de tornar o site mais personalizado. Apenas algumas cores serão usadas, mas o estilo geral continuará o mesmo. No entanto, se usar um theme em conjugação com uma solução customizada de branding, poupará tempo e esforço e o aspecto do seu site ficará mais aperfeiçoado.
Porquê usar themes?
Usar themes permite-lhe mudar o estilo de vários elementos, que normalmente seriam difíceis de personalizar (como o estilo hover e activo das linhas de uma lista) ou nem sequer se preocuparia em mudá-los (como os menus de contexto). Alterar estes elementos para usarem as mesmas cores do que o resto do design irá criar uma aparência mais polida.
Pode ver que elementos são alterados pelos themes neste post.
Como criar um theme
Siga estes passos:
- Abra o Microsoft PowerPoint 2010.
- Na tab Design, clique em Colors. No menu que aparece clique em “Create New Theme Colors…”.
- Usando as cores do seu design, escolha as tonalidades que se adequem aos valores default (use um tom escuro quando o default for escuro e um tom claro quando o default for claro).
- Dê-lhe um nome e guarde-o. Clique em “Save Current Theme” e escolha onde o guardar.
Como activar um theme programaticamente
No Visual Studio 2010 pode criar uma solução para fazer o deploy de um theme e uma feature para o activar automaticamente.
Num projecto SharePoint, crie um novo elemento Module para guardar o ficheiro theme. Adicione o ficheiro ao Module.
Altere o ficheiro Elements.xml para que o theme seja depositado na biblioteca correcta:
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="Themes" Url="_catalogs/theme" RootWebOnly="true">
<File Path="Themes\MyTheme.thmx" Url="MyTheme.thmx" Type="GhostableInLibrary" />
</Module>
</Elements>
Agora a solução WSP irá inserir o theme na biblioteca de Themes.
Se quiser activar/desactivar automaticamente o seu theme usando uma feature, use os métodos que se seguem no event receiver da sua feature.
Para activar o theme:
private const string myThemeUrl = "/_catalogs/theme/MyTheme.thmx";
public override void FeatureActivated(SPFeatureReceiverProperties properties) {
SPWeb web = (properties.Feature.Parent as SPWeb);
if (web != null) {
ApplyCustomTheme(web, myThemeUrl);
}
}
private void ApplyCustomTheme(SPWeb web, String ThemeUrl) {
ThmxTheme theme = ThmxTheme.Open(web.Site, ThemeUrl);
theme.ApplyTo(web, true);
web.Update();
}
Para desactivar o theme:
public override void FeatureDeactivating(SPFeatureReceiverProperties properties) {
SPWeb web = (properties.Feature.Parent as SPWeb);
if (web != null) {
RemoveCustomTheme(web);
}
}
private void RemoveCustomTheme(SPWeb web) {
ThmxTheme.RemoveThemeFromWeb(web, true);
web.Update();
}