Silverlight - Modelo de Conteúdo
Os botões oferecem uma forma de conteúdo para o conteúdo do modelo. Os modelos surgem muito nos controles. A ideia é simples. Ele aceitará qualquer conteúdo e não apenas texto. Se você deseja criar um botão verdadeiramente exótico, pode até colocar outros controles de conteúdo, como caixas de texto e botões dentro (e aninhar elementos estáticos dentro deles). É duvidoso que tal interface faria muito sentido, mas é possível.
Vamos dar uma olhada em um exemplo simples com botão, dentro do botão outros controles de conteúdo.
<UserControl x:Class = "ContentModel.MainPage"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable = "d"
d:DesignHeight = "300" d:DesignWidth = "400">
<Grid x:Name = "LayoutRoot" Background = "White">
<Button Margin = "3" Height = "70" Width = "215">
<Grid Margin = "5">
<Polygon Points = "100,25 125,0 200,25 125,50" Fill = "LightSteelBlue" />
<Polygon Points = "100,25 75,0 0,25 75,50" Fill = "LightGray"/>
</Grid>
</Button>
</Grid>
</UserControl>
Quando o código acima for compilado e executado, você verá o botão a seguir.
RangeControl
A barra de rolagem e os controles deslizantes estão intimamente relacionados. Ambos permitem que o usuário escolha um valor de entrada de um intervalo específico. Convencionalmente, esses controles significam coisas diferentes. As barras de rolagem são normalmente usadas para definir a posição em uma área escrotal, enquanto o controle deslizante é usado para especificar algum valor ou configuração. Estas são apenas convenções; os controles têm comportamentos e APIs semelhantes.
Os controles de alcance são simples de usar. Você especifica os valores mínimo e máximo para indicar a faixa de valores que deseja que o controle deslizante represente. oValue propriedade irá variar conforme o uso de arrasto varia.
A herança hierárquica de Slider a aula é a seguinte -
Dada a seguir são os comumente usados properties do Slider.
Sr. Não. | Descrição da Propriedade |
---|---|
1 | Header Obtém ou define o conteúdo do cabeçalho do controle. |
2 | HeaderProperty Identifica a propriedade de dependência do cabeçalho. |
3 | HeaderTemplate Obtém ou define o DataTemplate usado para exibir o conteúdo do cabeçalho do controle. |
4 | HeaderTemplateProperty Identifica a propriedade de dependência HeaderTemplate. |
5 | IntermediateValue Obtém ou define o valor do Slider enquanto o usuário está interagindo com ele, antes que o valor seja ajustado ao valor do tique ou do passo. A propriedade SnapsTo especifica o valor do controle deslizante. |
6 | IntermediateValueProperty Identifica a propriedade de dependência IntermediateValue. |
7 | IsDirectionReversed Obtém ou define um valor que indica a direção do valor crescente. |
8 | IsDirectionReversedProperty Identifica a propriedade de dependência IsDirectionReversed. |
9 | IsThumbToolTipEnabled Obtém ou define um valor que determina se o valor do controle deslizante é mostrado em uma dica de ferramenta para o componente Polegar do controle deslizante. |
10 | IsThumbToolTipEnabledProperty Identifica a propriedade de dependência IsThumbToolTipEnabled. |
11 | Orientation Obtém ou define a orientação de um Slider. |
12 | OrientationProperty Identifica a propriedade de dependência Orientation. |
13 | StepFrequency Obtém ou define a parte do valor de um intervalo de valor para o qual as etapas devem ser criadas. |
14 | StepFrequencyProperty Identifica a propriedade de dependência StepFrequency. |
15 | ThumbToolTipValueConverter Obtém ou define a lógica do conversor que converte o valor do intervalo do Slider em conteúdo de dica de ferramenta. |
16 | ThumbToolTipValueConverterProperty Identifica a propriedade de dependência ThumbToolTipValueConverter. |
17 | TickFrequency Obtém ou define o incremento do intervalo de valores para o qual os ticks devem ser criados. |
18 | TickFrequencyProperty Identifica a propriedade de dependência TickFrequency. |
19 | TickPlacement Obtém ou define um valor que indica onde desenhar marcas de escala em relação à faixa. |
20 | TickPlacementProperty Identifica a propriedade de dependência TickPlacement. |
Dada a seguir são os comumente usados events dentro Slider classe.
Sr. Não. | Descrição do Evento |
---|---|
1 | ManipulationCompleted Ocorre quando uma manipulação no UIElement é concluída. (Herdado de UIElement) |
2 | ManipulationDelta Ocorre quando o dispositivo de entrada muda de posição durante uma manipulação. (Herdado de UIElement) |
3 | ManipulationInertiaStarting Ocorre quando o dispositivo de entrada perde contato com o objeto UIElement durante uma manipulação e a inércia começa. (Herdado de UIElement) |
4 | ManipulationStarted Ocorre quando um dispositivo de entrada começa uma manipulação no UIElement. (Herdado de UIElement) |
5 | ManipulationStarting Ocorre quando o processador de manipulação é criado pela primeira vez. (Herdado de UIElement) |
6 | ValueChanged Ocorre quando o valor do intervalo muda. (Herdado de RangeBase) |
Dada a seguir são os comumente usados methods in Classe Slider.
Sr. Não. | Método e Descrição |
---|---|
1 | OnManipulationCompleted Chamado antes de ocorrer o evento ManipulationCompleted. (Herdado do controle) |
2 | OnManipulationDelta Chamado antes de ocorrer o evento ManipulationDelta. (Herdado do controle) |
3 | OnManipulationInertiaStarting Chamado antes de ocorrer o evento ManipulationInertiaStarting. (Herdado do controle) |
4 | OnManipulationStarted Chamado antes de ocorrer o evento ManipulationStarted. (Herdado do controle) |
5 | OnManipulationStarting Chamado antes de ocorrer o evento ManipulationStarting. (Herdado do controle) |
6 | OnMaximumChanged Chamado quando a propriedade Máximo é alterada. (Herdado de RangeBase) |
7 | OnMinimumChanged Chamado quando a propriedade Minimum muda. (Herdado de RangeBase) |
8 | OnValueChanged Dispara o evento roteado ValueChanged. (Herdado de RangeBase) |
9 | SetBinding Anexa uma vinculação a um FrameworkElement, usando o objeto de vinculação fornecido. (Herdado de FrameworkElement) |
10 | SetValue Define o valor local de uma propriedade de dependência em um DependencyObject. (Herdado de DependencyObject) |
Exemplo
Vamos dar uma olhada em um exemplo simples em que um controle deslizante e uma elipse são adicionados e o controle deslizante controla a largura da elipse.
<UserControl x:Class = "SliderExample.MainPage"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" xmlns:mc = "
http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable = "d" d:DesignWidth = "640" d:DesignHeight = "480">
<Grid x:Name = "LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height = "Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<Slider Minimum = "1" Maximum = "400" Value = "1"
ValueChanged = "Slider_ValueChanged" />
<Ellipse Grid.Row = "1" Fill = "Aqua" Width = "1" x:Name = "myEllipse" />
</Grid>
</UserControl>
Dado abaixo é o value changed event implementação é C #.
using System.Windows;
using System.Windows.Controls;
namespace SliderExample {
public partial class MainPage : UserControl {
public MainPage() {
InitializeComponent();
}
private void Slider_ValueChanged(object sender,
RoutedPropertyChangedEventArgs<double> e) {
if (myEllipse != null) {
myEllipse.Width = e.NewValue;
}
}
}
}
Quando o código acima for compilado e executado, você verá a seguinte saída. Como você pode ver, quando você move o controle deslizante da esquerda para a direita, a largura da elipse aumenta.