Silverlight - Modèles

UNE Templatedécrit l'aspect général et l'aspect visuel du contrôle. Pour chaque contrôle, un modèle par défaut lui est associé, ce qui donne l'apparence à ce contrôle.

Dans l'application WPF, vous pouvez facilement créer vos propres modèles lorsque vous souhaitez personnaliser le comportement visuel et l'apparence visuelle d'un contrôle.

Certaines caractéristiques importantes sont -

  • Tous les éléments de l'interface utilisateur ont une sorte d'apparence ainsi qu'un comportement, par exemple Button a une apparence et un comportement.

  • Click événement ou mouse hover sont les comportements qui sont déclenchés en réponse à un clic et au survol et il y a une apparence par défaut du bouton, qui peut être modifiée par le Control modèle.

Regardons à nouveau un exemple simple dans lequel un bouton est défini avec un modèle.

<UserControl x:Class = "ButtonTemplate.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" HorizontalAlignment = "Center" 
      VerticalAlignment = "Center">
		
      <Button Height = "100" Width = "100" Content = "Click!" 
         HorizontalContentAlignment = "Left" Click = "button_Click">
			
         <Button.Template> 
            <ControlTemplate TargetType = "Button"> 
				
               <Grid> 
					
                  <Ellipse Fill = "Gray" Stroke = "Black" 
                     StrokeThickness = "3" Margin = "-64,0,0,0" /> 
							
                  <ContentPresenter HorizontalAlignment = "{TemplateBinding 
                     HorizontalContentAlignment}" VerticalAlignment = "Center" 
                     Content = "{TemplateBinding Content}" /> 
               </Grid> 
					
            </ControlTemplate>
				
         </Button.Template>
			
      </Button>  
		
   </Grid> 
	
</UserControl>

Lorsque le code ci-dessus est compilé et exécuté, vous verrez la sortie suivante.

Connexion du modèle

Toutes les fonctionnalités de contrôle que nous souhaitons modéliser sont associées à des liaisons de modèle. Certains aspects sont un peu plus complexes. Par exemple, chaque fois que vous avez une forme de modèle de contenu, la liaison de modèle seule ne suffit pas à ce que vous voyiez sur le bouton. Nous devons également utiliser un présentateur de contenu comme indiqué dans l'exemple ci-dessus.