This is the syntax for specifying the type DependencyProperty . This is necessary because the attached property Storyboard.TargetProperty can be attached to any DependencyObject . This means that the XAML parser will not know how to resolve properties if they do not fully meet the requirements.
This syntax is also used for things like binding to attached properties. Here is an example demonstrating this:
<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>
If you remove the bracket from Binding , you will get a binding error (because there is no Grid property in the Border element).
Abe heidebrecht
source share