Silverlight - Şablonlar

Bir TemplateKontrolün genel görünümünü ve görsel görünümünü açıklar. Her kontrol için, bu kontrole görünüm veren, kendisiyle ilişkilendirilmiş varsayılan bir şablon vardır.

WPF uygulamasında, bir kontrolün görsel davranışını ve görsel görünümünü özelleştirmek istediğinizde kendi şablonlarınızı kolayca oluşturabilirsiniz.

Bazı önemli özellikler:

  • Tüm UI öğeleri bir tür görünüme ve davranışa sahiptir, örn. Button bir görünüme ve davranışa sahiptir.

  • Click olay veya mouse hover olay, bir tıklama ve fareyle üzerine gelme işlemine yanıt olarak tetiklenen davranışlardır ve varsayılan bir düğme görünümü vardır; Control şablonu.

Şablonla bir butonun tanımlandığı basit bir örneğe tekrar bakalım.

<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>

Yukarıdaki kod derlendiğinde ve çalıştırıldığında, aşağıdaki çıktıyı göreceksiniz.

Şablonu Bağlama

Şablonlamak istediğimiz tüm kontrol özellikleri şablon bağlamaları ile. Bazı yönler biraz daha karmaşıktır. Örneğin, herhangi bir içerik modeline sahip olduğunuzda, tek başına Şablon bağlama, düğmede gördüğünüz yeterli değildir. Ayrıca yukarıdaki örnekte gösterildiği gibi bir içerik sunucusu kullanmalıyız.