Brush funktioniert im Xaml, ist aber null im Code?
-
Hi,
Habe gerade irgendwie eine Denkblockade. Ich habe ein Control namens "Header", es wird wie folgt genutzt und auch korrekt angezeigt:
<Header Grid.Row="0" Text="{Binding Path=Title}"> <Header.Background> <SolidColorBrush Color="#C4010F" x:Name="HeaderBackground"/> </Header.Background> </Header>
Der Brush hat einen Namen via
x:Name="HeaderBackground"
. Im Code kann ich den Namen mittelsthis.HeaderBackground
ansprechen und es kompiliert auch, jedoch ist der Wert immernull
.Warum ist dies so? Ach ja, ist auf dem Windows Phone
MfG
-
Wahrscheinlich ist die folgende Frage überflüssig, aber ich frag mal trotzdem, da es der offensichtlichste Fehler wäre. Aktuell auch das einzige, was mir dazu überhaupt einfällt
Greifst du auf das Element zu, bevor du
InitializeComponent
aufgerufen hast?Grüssli
-
Danke, aber das war auch mein erster Gedanke, weil ich auch noch mit Threads in derlei arbeite. Der Zugriff erfolgt aber nach dem
InitializeComponent
-Aufruf in einer überschriebenen MethodeOnNavigatedTo
, aufgerufen vom Dispatcher, wo ich gerne den Background mit einem Storyboard animieren möchte (nichts spezielles, nur ein Farbübergang von rot nach blau z.B.).Wenn ich dem Control selbst das Attribut
x:Name="Header"
verpasse, ist dieses ohne Probleme mittelsthis.Header
ansprechbar.$EDIT: Habe das Problem umgehen können, indem ich die Animation mit weniger Namen in Xaml realisiert habe.
<phone:PhoneApplicationPage.Resources> <Storyboard x:Key="AnimHeaderBackground"> <ColorAnimation Storyboard.TargetName="Header" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Duration="0:1:0"/> </Storyboard> </phone:PhoneApplicationPage.Resources>
Vielen Dank trotzdem
-
Ein anderer Name und dann geht es? Gibt es womöglich bereits ein
HeaderBackground
Property in der Hierarchie?Grüssli