<Border Name="ItemBorder" Margin="5 5 0 5" BorderBrush="Black" BorderThickness="1" Height="75" Width="75">
<Border.Background>
<SolidColorBrush x:Name="ItemBorderBrush" Color="LightBlue"/>
</Border.Background>
<ContentPresenter/>
</Border>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="someEvent">
<BeginStoryboard>
<Storyboard TargetName="ItemBorderBrush" TargetProperty="Color" Duration="0:0:1" >
<!--Storyboard TargetName="ItemBorder" TargetProperty="Background.Color" Duration="0:0:1"> -->
<ColorAnimation To="White"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ControlTemplate.Triggers>
Ich werde versuchen, meine Frage klar zu erklären. Der Name des Storyboard-Ziels, wenn es "ItemBorder" (die auskommentierte Zeile) ist, arbeitet zeitweise. Manchmal bekomme ich einen Fehler, dass der Name "ItemBorder" nicht im Bereich gefunden werden kann.Was ist die Bedeutung von x: Name in xaml (WPF) und seine Verwendung mit Storyboard
Ich habe mich entschieden, einem Stil aus einem MSDN-Beispiel zu folgen und die Farbeigenschaft direkt im Pinsel zu ändern, anstatt das Ziel des Storyboards als Rahmen zu definieren und die Farbe des Rahmens nach Eigenschaft zu ändern (die auskommentierte Zeile). Dies scheint zu funktionieren.
Allerdings ist Name="ItemBorderBrush"
nicht kompiliert, da Name
keine Eigenschaft von SolidColorBrush
ist so verwende ich x:Name="ItemBorderBrush"
Sowohl Name
und x:Name
für die Border akzeptiert. Warum ist das?
Was bedeutet das x:
(wie x:Name
unterscheidet sich von Name
ist), und warum sollte mit der Name
Eigentum der Grenze nur manchmal mit dem Storyboard arbeiten?
siehe auch [In WPF, was sind die Unterschiede zwischen dem x: Name und Name Attribute] (http://stackoverflow.com/questions/589874/in-wpf-what-are- the-differences-zwischen-x-name und name-attribute –