WPF: dal DataBinding ai Template - Terza parte

5 pagine in totale: <<Indietro 1 2 3 4 [5]

A questo punto poiché la proprietà Background è impostata utilizzando il TemplateBinding definiamo un nuovo Setter per donare allo sfondo un aspetto base. Il codice completo è quindi il seguente:

<Window x:Class="MyGamePlace.Window2" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MyGamePlace" Height="300" Width="300" 
    > 
  <Window.Resources> 
    <Style TargetType="{x:Type Button}"> 
      <Setter Property="Background"> 
        <Setter.Value> 
            <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> 
              <GradientStop Color="Red" Offset="0.0" /> 
              <GradientStop Color="Black" Offset="1.0" /> 
            </LinearGradientBrush> 
        </Setter.Value> 
      </Setter> 
      <Setter Property="Template"> 
        <Setter.Value> 
          <ControlTemplate TargetType="{x:Type Button}"> 
            <Border Name="Border" Padding="15" CornerRadius="10" Background="{TemplateBinding Background}"> 
              <ContentPresenter Margin="2" HorizontalAlignment="Center" VerticalAlignment="Center" RecognizesAccessKey="True"/> 
            </Border> 
          </ControlTemplate> 
        </Setter.Value> 
      </Setter> 
    </Style> 
  </Window.Resources> 
  <StackPanel> 
    <Button>Button</Button> 
    <Button> 
      <Button.Background> 
        <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> 
          <GradientStop Color="White" Offset="0.0" /> 
          <GradientStop Color="Black" Offset="1.0" /> 
        </LinearGradientBrush> 
      </Button.Background> Button 
    </Button> 
  </StackPanel> 
</Window> 

ControlTemplate con TemplateBinding

Questo nuovo template, abbinato all'uso degli Style ci permette di definire un layout non solo personalizzato, ma abbastanza flessibile per future semplici varianti. Quanto fatto per il Background va naturalmente esteso al fine di comprendere tutte quelle proprietà del controllo che desideriamo e pensiamo sia utile preservare. Queste considerazioni vanno attentamente valutate in fase di realizzazione del template per non limitarne l'uso e rendere presto il nostro lavoro completamente inutile.

Conclusioni

Nel corso dell'articolo abbiamo visto come possiamo facilmente selezionare il template in base ad una logica custom e come ridefinire completamente l'aspetto dei controlli. Quest'ultimo argomento è piuttosto ampio e meriterebbe delle spiegazioni specifiche ad ogni controllo che sicuramente non mancheremo di discutere.

5 pagine in totale: <<Indietro 1 2 3 4 [5]

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.

TUTORIALS


IN EVIDENZA
MISC