2012-10-22 14 views
44

Come creare uno stile basato sullo stile predefinito in Silverlight?Come creare uno stile basato sullo stile predefinito?

Per esempio, in WPF ce la facciamo come:

<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}"> 
    <Setter Property="Margin" Value="2" /> 
    <Setter Property="Padding" Value="2" /> 
</Style> 
+5

Sono giunto a questa domanda cercando una risposta su come farlo in WPF :) –

risposta

18

Praticamente la stessa. Appena meno la x: scrivi con una denominazione più esplicita.

<Style TargetType="TextBox" BasedOn="{StaticResource DefaultTextBoxStyle}"> 

Altre informazioni here in the docs. PS, nel caso in cui sia necessario i modelli predefiniti, ad esempio, TextBox si trova in CoreStyles.xaml

ADDENDUM come richiesto nei commenti nel caso in cui si sia confusi alla prima lettura della risposta;

"hai bisogno di uno stile di base, che è davvero facile da fare come lo si intende fare in un tema di applicazione che crea i file come ToolkitStyles.xaml, SDKStyles.xaml, CoreStyles.xaml, ecc. . che è dove il nome nella risposta è arrivata da"

+2

ma se voglio ereditare lo stile predefinito di controllo personalizzato (sviluppato da me)? – ZuTa

+1

forse la mia domanda non è ovviamente .. – ZuTa

+0

Oh, quindi basta sostituire i campi con i propri. Come invece di DefaultTextBoxStyle, sostituire con YourStyleTemplate, ecc. Giusto? –

11

per creare uno stile in base allo stile di default, è necessario creare uno stile di nome, quindi rendere lo stile di default in base allo stile di nome (http://weblogs.asp.net/lduveau/silverlight-how-to-inherit-from-an-implicit-style)

<Style x:Key="DefaultCustomControlStyle" TargetType="local:CustomControl"> 
    <Setter Property="Padding" Value="2" /> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="local:CustomControl"> 
       <ContentPresenter /> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
<Style TargetType="local:CustomControl" BasedOn="{StaticResource DefaultCustomControlStyle}" /> 
Problemi correlati