2010-09-17 11 views

risposta

4

Questa è la sintassi per specificare un tipo qualificato DependencyProperty. È necessario poiché la proprietà associata a Storyboard.TargetProperty può essere collegata a qualsiasi DependencyObject. Ciò significa che il parser XAML non saprà come risolvere le proprietà a meno che non siano pienamente qualificate.

Questa sintassi viene anche utilizzata per cose come il binding alle proprietà collegate. Ecco un esempio inventato per dimostrare questo:

<Grid> 
    <Grid.RowDefinitions> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="*" /> 
    </Grid.RowDefinitions> 
    <Border x:Name="Foo" Background="Blue" Grid.Row="10" /> 
    <Border x:Name="Bar" Background="Red" Height="{Binding (Grid.Row), ElementName=Foo}" /> 
</Grid> 

Se si rimuove la parentesi dal Binding, si otterrà un errore di binding (perché non v'è alcuna proprietà griglia sull'elemento Border).

0

Non viene utilizzato solo per le animazioni (convalida in mente) - sono semplicemente chiamate statiche o calchi, rispettivamente. Fondamentalmente il codice sopra traduce (in pseudo-codice):

((RotateTransform)TextBlock.GetRenderTransform((TextBlock) element)).Angle = newValue; 

dove è l'elemento che viene agito e newValue rappresenta l'impostazione delle proprietà di animazione.

Problemi correlati