Desenvolvimento do Windows 10 - controles XAML
XAML significa Extensible Application Markup Language. É uma estrutura de interface do usuário e oferece uma ampla biblioteca de controles que oferecem suporte ao desenvolvimento de interface do usuário para Windows. Alguns deles têm uma representação visual como um Botão, Caixa de Texto e Bloqueio de Texto etc; enquanto outros controles são usados como contêineres para outros controles ou conteúdo, como imagens, etc. Todos os controles XAML são herdados de“System.Windows.Controls.Control”.
História emergente de XAML
O XAML é usado em muitas plataformas importantes da Microsoft, como o Windows Presentation Foundation (WPF), o Silverlight e agora, aplicativos do Windows. Agora, o Microsoft Office 2016 também é uma família de aplicativos UWP. XAML é uma plataforma rica, que fornece recursos e controles muito interessantes que podem ser usados em aplicativos UWP.
A hierarquia de herança completa de controles é mostrada abaixo.
Controles de layout
O layout dos controles é muito importante e crítico para a usabilidade do aplicativo. Ele é usado para organizar um grupo de elementos da GUI em seu aplicativo. Existem certas coisas importantes a considerar ao selecionar os painéis de layout -
- Posições dos elementos filhos.
- Tamanhos dos elementos filhos.
- Sobreposição de elementos filho sobrepostos uns sobre os outros.
Uma lista de Layout Controls é dado abaixo -
S.No. | Controles e descrição |
---|---|
1 | StackPanel StackPanelé um painel de layout simples e útil em XAML. No painel de pilha, os elementos filho podem ser organizados em uma única linha horizontal ou verticalmente com base na propriedade de orientação. |
2 | WrapPanel Dentro WrapPanel, os elementos filhos são posicionados em ordem sequencial da esquerda para a direita ou de cima para baixo com base na propriedade de orientação. A única diferença entre StackPanel e WrapPanel é que ele não empilha todos os elementos filho em uma única linha, mas quebra os elementos restantes em outra linha se não houver espaço restante. |
3 | DockPanel DockPaneldefine uma área para organizar os elementos filhos em relação uns aos outros, horizontal ou verticalmente. Com o DockPanel, você pode facilmente encaixar os elementos filhos na parte superior, inferior, direita, esquerda e central com a propriedade Dock. Com LastChildFill , o último elemento filho preenche o espaço restante, independentemente de qualquer outro valor de dock quando definido para esse elemento. |
4 | Canvas Canvasé o painel de layout básico no qual os elementos filhos podem ser posicionados explicitamente usando coordenadas que são relativas a qualquer lado, como esquerdo, direito, superior e inferior. Normalmente, o Canvas é usado para elementos gráficos 2D (como Elipse, Retângulo etc.), mas não para elementos de IU, porque a especificação de coordenadas absolutas causa problemas ao redimensionar, localizar ou dimensionar em um aplicativo XAML. |
5 | Grid Gridfornece uma área flexível, que consiste em linhas e colunas. No Grid, os elementos filhos podem ser organizados em uma forma tabular. Os elementos podem ser adicionados a qualquer linha e coluna específica usandoGrid.Row e Grid.Column propriedades. |
6 | SplitView SplitViewrepresenta um contêiner com duas visualizações; uma visualização para o conteúdo principal e outra visualização normalmente usada para comandos de navegação. |
7 | RelativePanel RelativePanel define uma área dentro da qual você pode posicionar e alinhar objetos filho em relação uns aos outros ou ao painel pai. |
8 | ViewBox ViewBox define um decorador de conteúdo que pode esticar e dimensionar um único filho para preencher o espaço disponível. |
9 | FlipView FlipView representa o controle de um item que exibe um item por vez e permite o comportamento "inverter" para percorrer sua coleção de itens. |
10 | GridView GridView é um controle que apresenta uma coleção de itens em linhas e colunas e pode ser rolado horizontalmente. |
Controles de IU
Aqui está uma lista de controles de interface do usuário, que são visíveis para os usuários finais.
S.No. | Controles e descrição da interface do usuário |
---|---|
1 | Button Um controle que responde à entrada do usuário |
2 | Calendar Representa um controle que permite a um usuário selecionar uma data usando uma exibição de calendário visual. |
3 | CheckBox Um controle que um usuário pode selecionar ou limpar. |
4 | ComboBox Uma lista suspensa de itens, um usuário pode selecionar. |
5 | ContextMenu Obtém ou define o elemento do menu de contexto que deve aparecer sempre que o menu de contexto é solicitado por meio da interface do usuário (IU) de dentro desse elemento. |
6 | DataGrid Representa um controle que exibe dados em uma grade personalizável. |
7 | DatePicker Um controle que permite ao usuário selecionar uma data. |
8 | Dialogs Um aplicativo também pode exibir janelas adicionais para que o usuário reúna ou exiba informações importantes. |
9 | Flyout Representa um controle que exibe UI leve que é uma informação ou requer interação do usuário. Ao contrário de uma caixa de diálogo, um Flyout pode ser descartado levemente clicando ou tocando fora dele, pressionando o botão Voltar do dispositivo ou pressionando a tecla 'Esc'. |
10 | Image Um controle que apresenta uma imagem. |
11 | ListBox Um controle que apresenta uma lista embutida de itens que o usuário pode selecionar. |
12 | Menus Representa um controle de menu do Windows que permite organizar hierarquicamente os elementos associados a comandos e manipuladores de eventos. |
13 | MenuFlyout Representa um menu desdobrável que exibe um menu de comandos. |
14 | PasswordBox Um controle para inserir senhas. |
15 | Popup Exibe o conteúdo sobre o conteúdo existente, dentro dos limites da janela do aplicativo. |
16 | ProgressBar Um controle que indica o progresso exibindo uma barra. |
17 | ProgressRing Um controle que indica o progresso indeterminado exibindo um anel. |
18 | RadioButton Um controle que permite ao usuário selecionar uma única opção de um grupo de opções. |
19 | RichEditBox Um controle que permite ao usuário editar documentos de rich text com conteúdo como texto formatado, hiperlinks e imagens. |
20 | ScrollViewer Um controle de contêiner que permite ao usuário deslocar e aplicar zoom em seu conteúdo. |
21 | SearchBox Um controle que permite a um usuário inserir consultas de pesquisa. |
22 | Slider Um controle que permite ao usuário selecionar a partir de uma gama de valores, movendo um controle Thumb ao longo de uma trilha. |
23 | TextBlock Um controle que exibe o texto. |
24 | TimePicker Um controle que permite ao usuário definir um valor de hora. |
25 | ToggleButton Um botão que pode ser alternado entre 2 estados. |
26 | ToolTip Uma janela pop-up que exibe informações sobre um elemento. |
27 | Window A janela raiz que fornece a opção de minimizar / maximizar, barra de título, borda e botão Fechar. |
A seguir está um exemplo, que contém diferentes tipos de controles em um SplitView. No arquivo XAML, diferentes controles são criados com algumas propriedades e eventos.
<Page
x:Class = "UWPControlsDemo.MainPage"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local = "using:UWPControlsDemo"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable = "d">
<Grid Background = "{ThemeResource ApplicationPageBackgroundThemeBrush}">
<StackPanel Margin = "20">
<StackPanel Orientation = "Horizontal">
<ToggleButton x:Name = "HamburgerButton" FontFamily = "Segoe MDL2 Assets"
Content = "" Checked = "HandleCheck" Unchecked = "HandleUnchecked"
HorizontalAlignment = "Center"/>
<AppBarButton Icon = "Like" />
<AppBarButton Icon = "Dislike" />
<AppBarSeparator/>
<AppBarButton Icon = "Accept" />
<AppBarButton Icon = "Add" />
</StackPanel>
<SplitView x:Name = "splitView" DisplayMode = "Inline"
OpenPaneLength = "296">
<SplitView.Pane>
<StackPanel>
<TextBlock Text = "SplitView Pane" FontSize = "36"
VerticalAlignment = "Center" HorizontalAlignment = "Center"
Margin = "10"/>
<Button Content = "Options" Margin = "10">
<Button.Flyout>
<MenuFlyout>
<MenuFlyoutItem Text = "Reset"/>
<MenuFlyoutSeparator/>
<MenuFlyoutItem Text = "Repeat"/>
<MenuFlyoutItem Text = "Shuffle"/>
</MenuFlyout>
</Button.Flyout>
</Button>
</StackPanel>
</SplitView.Pane>
<StackPanel>
<TextBlock Text = "SplitView Content" FontSize = "36"
VerticalAlignment = "Center" HorizontalAlignment = "Center"
Margin = "10"/>
<Border BorderThickness = "3" BorderBrush = "Red" Margin = "5">
<StackPanel Orientation = "Horizontal">
<TextBlock Text = "Hyperlink example" Margin = "5"/>
<HyperlinkButton Content = "www.microsoft.com"
NavigateUri = "http://www.microsoft.com"/>
</StackPanel>
</Border>
<RelativePanel BorderBrush = "Red" BorderThickness = "2"
CornerRadius = "10" Padding = "12" Margin = "5">
<TextBlock x:Name = "txt" Text = "Relative Panel example"
RelativePanel.AlignLeftWithPanel = "True"
Margin = "5,0,0,0"/>
<TextBox x:Name = "textBox1" RelativePanel.RightOf = "btn"
Margin = "5,0,0,0"/>
<Button x:Name = "btn" Content = "Name"
RelativePanel.RightOf = "txt" Margin = "5,0,0,0"/>
</RelativePanel>
<FlipView Height = "400" Margin = "10" Width = "400">
<Image Source = "Images/DSC_0104.JPG"/>
<Image Source = "Images/DSC_0080.JPG"/>
<Image Source = "Images/DSC_0076.JPG"/>
<Image Source = "Images/thGTF7BWGW.jpg"/>
</FlipView>
</StackPanel>
</SplitView>
</StackPanel>
</Grid>
</Page>
Dado abaixo é o Events implementação em C #.
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;
// The Blank Page item template is documented at
http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
namespace UWPControlsDemo {
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class MainPage : Page {
public MainPage() {
this.InitializeComponent();
}
private void HandleCheck(object sender, RoutedEventArgs e) {
splitView.IsPaneOpen = true;
}
private void HandleUnchecked(object sender, RoutedEventArgs e) {
splitView.IsPaneOpen = false;
}
}
}
Quando o código acima for compilado e executado, você verá a seguinte janela -
Quando você clica no botão de hambúrguer no lado superior esquerdo, ele abre / fecha o SplitView painel.
No SplitView Painel, você pode ver o Flyout, MenuFlyout e FlipView controles.
No SplitView Conteúdo, você pode ver o Hyperlink, Painel Relativo, ViewBox e outros botões e controles de caixa de texto.