Modelos e controles personalizados. José Antônio da Cunha IFRN

Documentos relacionados
Animação no Silverlight

Controls. José Antônio da Cunha IFRN

Navegação. José Antônio da Cunha IFRN

Shapes e Geometries. José Antônio da Cunha IFRN

Geometria. IFRN Natal - RN

Casa do Código Livros para o programador Rua Vergueiro, º andar Vila Mariana São Paulo SP Brasil. E-book gerado especialmente para

Interface. Movimentação na planilha

Introdução a Tecnologia da Informação

Inserindo Imagem. Inserindo uma imagem a partir da Galeria

CURSO DE ACCESS AULA 3 FORMULÁRIOS. Cartão de Referência Rápida Um formulário para cada função

Laboratório 3 WCF RIA Services

Windows Presentation Foundation IFRN - RN

PROGRAMAÇÃO PARA INTERNET RICA FUNDAMENTOS DO CSS PARTE II

Capítulo 1... Iniciando o Word Conhecendo a tela do word...10 Exercício...14

Introdução ao ASP.NET

ASP.NET Web Services. José Antônio da Cunha IFRN

FTAD Formação Técnica em Administração. Aula 03 Prof. Arlindo Neto

Na barra de ferramentas padra o, clique no i cone de Tabela

O MICROSOFT OFFICE WORD 2010

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA APRESENTAÇÃO ELETRÔNICA POWER POINT (CONTINUAÇÃO)

Criar uma solução com um link Serviços RIA entre os projetos

ELABORADO POR MARCO SOARES 1. Formatação de texto

ÍNDICE. PowerPoint CAPÍTULO 1... CAPÍTULO 2... CAPÍTULO 3...

Introdução à Informática. Aula 06 MS WINDOWS XP MS WORD. Prof. Fábio Nelson

CURSO INTRODUÇÃO AO SIG USANDO QGIS

CSS Cascading Style Sheets

Visual Basic.NET. Buttons, Checkboxes, Radio Buttons, Panels e Group Boxes. Professor: Danilo Giacobo

Introdução ao ASP.NET

Unidade 2: Navegação e Edição Básica

DreamweaverCC Plano de Aula - 24 Aulas (Aulas de 1 Hora).

Plano de Aula - DreamWeaver CC - cód Horas/Aula

Módulo 5. Microsoft Office Power Point 2007 Projeto Unifap Digital

Eventos. José Antônio da Cunha IFRN

Softwares de Apresentação Power Point

Curso Técnico em Informática. Sistema Educacional Galileu. A interface do PowerPoint. Barra do Título. Barra de Menu. Barra de Formatação

ROBERTO OLIVEIRA CUNHA

Usar minigráficos para mostrar tendências de dados

Cisco Unified Attendant Console Compact Edition v8.6.5

Guia do Usuário de Organogramas Cross-Browser do OrgPublisher

Informática para Concursos 1

orm

O PowerPoint é um programa componente da suíte Office da Microsoft.

Pesquisa TCar. Abaixo serão apresentados as funcionalidades da Nova Pesquisa do Sistema TCar.

Dicas de VBA - Personalizar o Friso I

Tutotial Microsoft Word

Exercícios Práticos HTML5 + CSS3. Profa. Flávia Pereira de Carvalho

45 minutos. Utilize seguinte ou anterior no canto inferior esquerdo para avançar para a próxima página ou voltar ao anterior. Abra o arquivo Tutorial

PowePoint Office 2010

Introdução a Tecnologia da Informação

Edição Vetorial Criação de camadas

Tutorial QGIS Aula 10

Parte IV Como projetar um layout de página

Apostila Impress 01. Partes da Janela Principal do Impress

Exemplos Práticos HTML5 + CSS3. Profa. Flávia Pereira de Carvalho

Aparência. Lauri Watts Tradução: Lisiane Sztoltz

UNIVERSIDADE FEDERAL DE PELOTAS. Índice

ÍNDICE INTRODUÇÃO... 3 CAPÍTULO 1 CAPÍTULO 2 CAPÍTULO 3 CAPÍTULO 4. Adobe InDesign CC 5

Colocando referências bibliográficas no Microsoft Word 2010

Paradigmas de Programação React Native

Ambiente de programação

TUTORIAL WORDART: Criando nuvens de palavras. Realização: Secretaria Geral de Educação a Distância da Universidade Federal de São Carlos

Sumário Objetivos Estudo de caso 1 Detalhamento bloco Estudo de caso 2 Detalhamento do suporte... 19

Inserindo Quebra de Página

Como trabalhar com a ferramenta Preenchimento de malha

Envios. Drag and Drop

Introdução à Informática. Aula 07 MS WORD. Prof. Fábio Nelson

1. Crie um novo projeto Scratch. Apague o gato clicando com o botão direito e em apagar.

A configuração é bem simples e é feita através de um painel onde cada gesto é associado a um comando do NetBeans.

Tutorial - 5. Introdução. Objetivos. Conteúdo

Qual a razão do termo cascata na terminologia CSS? A forma como as regras de estilo são aplicadas obedece a 3 princípios básicos: herança,

CRIANDO PERSONALIZAÇÕES/PATCHS DE APARELHOS (BLIBLIOTECAS)

Formatação personalizada

Computação II (MAB 225)

Curso Autodesk Inventor CADesign Parte 2

INICIANDO O POWERPOINT 2000

CURSO DE POWER POINT EXERCÍCIO 1 Iniciando

Aula 11 Windows Movie Maker

Aprendendo o PowerPoint

Executar uma macro clicando em um botão da Barra de Ferramentas de Acesso Rápido

SELECIONANDO E AGRUPANDO OBJETOS

NIVELAMENTO DE INFORMÁTICA. Professor: Cleber Semensate

Plano de Aula - PowerPoint cód Horas/Aula

CAPÍTULO 1... Iniciando o Word Conhecendo a tela do word...10 Exercício...14

10. CRIANDO FORMULÁRIOS DO VBA

Dreamweaver CS5 Plano de Aula - 24 Aulas (Aulas de 1 Hora).

Dreamweaver CS6 Plano de Aula - 24 Aulas (Aulas de 1 Hora).

Excel INTERMEDIÁRIO. Prof. Cassiano Isler Turma 3

Informática Básica. Aula 2.9 Formatação no Writer. Prof. Dr. Bruno Moreno

UNIVERSIDADE FEDERAL DE PELOTAS. Índice

USANDO MODELLUS. Aula 1

USANDO O PAINT NOÇÕES BÁSICAS

Plano de Aula - Dreamweaver CS5 - cód Horas/Aula

NOÇÕES DE INFORMÁTICA ALISSON CLEITON MÓDULO VII

Universidade Federal do Rio de Janeiro Faculdade de Arquitetura e Urbanismo

da fonte, a cor do sublinhado e alguns efeitos pré-definidos.

Linguagem de Programação I. Formulários

Usar segmentações de dados para filtrar dados de Tabela Dinâmica

Apostila de Windows Movie Maker

UNIVERSIDADE FEDERAL DE PELOTAS. Índice

Transcrição:

Modelos e controles personalizados José Antônio da Cunha IFRN

Modelos (Templates) Os estilos permitem alterar a aparência de um elemento. No entanto, os estilos são limitados a definição de propriedades que são definidas na classe do elemento. O Silverlight tem outra ferramenta de personalização chamada templates. Embora você possa usar estilos com qualquer elemento do Silverlight, os modelos são limitados a controles Silverlight, em outras palavras, elementos que herda da classe Control no namespace System.Windows.Controls.

Modelos (Templates) Estes elementos adquirem uma propriedade chamada de template, que pode ser configurado para aplicar um modelo personalizado, efetivamente substituindo o visual padrão do controle. Por exemplo, mudando o modelo usado por um objeto de botão, você pode criar muitos outros tipos e botão que seria impensável só com um estilo.

Criando um Modelos (Templates) <Button Content="Um botão modelado" Height="30" Width="300"> <Button.Template> <ControlTemplate TargetType="Button" > <Border BorderBrush="Orange" BorderThickness="3" CornerRadius="10" Background="Red" > <TextBlock Foreground="White" Text="A Custom Template"></TextBlock> </Border> </ControlTemplate> </Button.Template> </Button>

Reutilização de Control Templates No exemplo anterior, a definição do modelo está aninhado dentro do elemento. Mas é muito mais comum definir o modelo de um controle através de um estilo. Isso dá a possibilidade de reutilizar o modelo para várias instâncias do mesmo controle. Para acomodar este projeto, você precisa definir o seu modelo de controle como um recurso: <UserControl.Resources> <ControlTemplate x:key="buttontemplate" TargetType="Button" > <Border BorderBrush="Orange" BorderThickness="3" CornerRadius="10" Background="Red"> <TextBlock Foreground="White" Text="A Custom Template"></TextBlock> </Border> </ControlTemplate> </UserControl.Resources>

Você pode consultá-lo usando uma referência StaticResource, como mostrado aqui: <Button Template="{StaticResource ButtonTemplate}" Content="A Template Button" Height="30" Width="300"> </Button>

O ContentPresenter O ContentPresenter é necessário para todos os controles de conteúdo e é uma espécie de marcador que diz ao Silverlight para onde o conteúdo deve ser inserido. <Button Height="30" Width="300" Margin="50,191,50,79"> <Button.Template> <ControlTemplate x:name="buttontemplate" TargetType="Button" > <Border BorderBrush="Orange" BorderThickness="3" CornerRadius="10" Background="Red" > <ContentPresenter> <TextBlock Foreground="White" Text="Um novo botão"></textblock> </ContentPresenter> </Border> </ControlTemplate> </Button.Template> </Button>

Estado do Controle Button Estados são colocados juntos em grupo. Os grupos são mutuamente exclusivos, o que significa que, um controle tem um estado em cada grupo. Por exemplo, o botão tem dois grupos estado: CommonStates e FocusStates. Por exemplo, se você usar a tecla Tab para passar de um botão para outro, os seus estados passaram de normal (de CommonStates) e foco (do FocusStates). Se você mova o mouse sobre o botão, os seus estados serão MouseOver ((de CommonStates) e foco ((de FocusStates).

Estado do Controle Button Para definir os grupos do estado, você deve adicionar VisualStateManager.VisualSateGroups no elemento raiz de seu control template, como mostrado aqui:

<Grid x:name="layoutroot" Background="White"> <Button Height="30" Width="300"> <Button.Template> <ControlTemplate x:name="buttontemplate" TargetType="Button" > <Grid> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:name="commstate"> <VisualState x:name="mouseover"> <Storyboard> <ColorAnimation Duration="0:0:0" Storyboard.TargetName="ButtonBackgroundBrush" Storyboard.TargetProperty="Color" To="Orange" /> </Storyboard> <VisualState x:name="normal"> <Storyboard> <ColorAnimation Duration="0:0:0" Storyboard.TargetName="ButtonBackgroundBrush" Storyboard.TargetProperty="Color" /> </Storyboard> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Border x:name="buttonborder" BorderBrush="OrangeRed" BorderThickness="3" CornerRadius="15"> <Border.Background> <SolidColorBrush x:name="buttonbackgroundbrush" Color="Red" /> </Border.Background> <ContentPresenter></ContentPresenter> </Border> </Grid> </ControlTemplate> </Button.Template> </Button> </Grid>

Mostrando o Focus No exemplo anterior, você usou os estados normal e MouseOver do grupo CommonStates para controlar como o botão aparece quando o mouse passa por cima do mesmo. Você também pode adicionar os estados Pressionado e Disabilitado para personalizar suas outras duas alternativas. Esses quatro estados são mutuamente exclusivos. Muitos controles usam um foco para indicar quando o controle está selecionado. O é indicado por um retângulo com uma borda pontilhada. O exemplo a seguir mostra isto:

<Button Height="30" Width="300" x:name="btnbutton" Margin="63,95,37,175"> <Button.Template> <ControlTemplate x:name="buttontemplate" TargetType="Button" > <Grid> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:name="focusstates"> <VisualState x:name="focused"> <Storyboard> <DoubleAnimation Duration="0" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Opacity" To="1"/> </Storyboard> <VisualState x:name="unfocused"> <!-- Coloque o código aqui para quando o botão perder o foco--> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Border x:name="buttonborder" BorderBrush="OrangeRed" BorderThickness="3" CornerRadius="15"> <Border.Background> <SolidColorBrush x:name="buttonbackgroundbrush" Color="Red" /> </Border.Background> <ContentPresenter></ContentPresenter> </Border> <Rectangle x:name="focusvisualelement" Stroke="Black" Margin="8" Opacity="0" StrokeThickness="1" StrokeDashArray="1 2"></Rectangle> </Grid> </ControlTemplate> </Button.Template> </Button>

Transições Você pode aumentar a duração para criar um efeito que vai misturando gradualmente as cores. Aqui está um exemplo onde a cor desaparece e uma nova cor surge a cada 0,2 segundo: <VisualStateManager.VisualStateGroups> <VisualStateGroup x:name="commonstates"> <VisualStateGroup.Transitions> <VisualTransition GeneratedDuration="0:0:0.2"/> </VisualStateGroup.Transitions> <VisualState x:name="mouseover"> <Storyboard> <ColorAnimation Duration="0:0:0" Storyboard.TargetName="ButtonBackgroundBrush" Storyboard.TargetProperty="Color" To="Orange" /> </Storyboard> <VisualState x:name="normal"> </VisualStateGroup> </VisualStateManager.VisualStateGroups>

Transições outro exemplo <VisualStateManager.VisualStateGroups> <VisualStateGroup x:name="commonstates"> <VisualStateGroup.Transitions> <VisualTransition To="MouseOver" GeneratedDuration="0:0:0.5"/> <VisualTransition From="MouseOver" GeneratedDuration="0:0:0.1"/> </VisualStateGroup.Transitions> <VisualState x:name="mouseover"> <Storyboard> <ColorAnimation Duration="0:0:0" Storyboard.TargetName="ButtonBackgroundBrush" Storyboard.TargetProperty="Color" To="Orange" /> </Storyboard> <VisualState x:name="normal"> </VisualStateGroup> </VisualStateManager.VisualStateGroups>