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 mittels this.HeaderBackground ansprechen und es kompiliert auch, jedoch ist der Wert immer null .

    Warum ist dies so? Ach ja, ist auf dem Windows Phone 😉

    MfG


  • Administrator

    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 Methode OnNavigatedTo , 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 mittels this.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 🙂


  • Administrator

    Ein anderer Name und dann geht es? Gibt es womöglich bereits ein HeaderBackground Property in der Hierarchie?

    Grüssli


Anmelden zum Antworten