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.