2013-03-12 11 views
11

Ich habe ein neues Projekt von der Grid App (XAML) Vorlage (C# Windows Store) erstellt. Bis jetzt habe ich nichts in der Vorlage geändert, aber ich möchte die Hintergrundfarbe von einer bestimmten Zeile im Raster ändern.C# Ändern Hintergrundfarbe bestimmte Zeile

<!-- 
    This grid acts as a root panel for the page that defines two rows: 
    * Row 0 contains the back button and page title 
    * Row 1 contains the rest of the page layout 
--> 
<Grid Style="{StaticResource LayoutRootStyle}"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="140"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 

Ich möchte die Hintergrundfarbe von Zeile 0 (die den Seitentitel enthält) ändern. Irgendwelche Ideen ?? Danke im Voraus!

Diese Zeile consits von:

<!-- Back button and page title --> 
    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto"/> 
      <ColumnDefinition Width="*"/> 
     </Grid.ColumnDefinitions> 
     <Button x:Name="backButton" Click="GoBack" IsEnabled="{Binding Frame.CanGoBack, ElementName=pageRoot}" Style="{StaticResource BackButtonStyle}"/> 
     <TextBlock x:Name="pageTitle" Text="{StaticResource AppName}" Grid.Column="1" IsHitTestVisible="false" Style="{StaticResource PageHeaderTextStyle}"/> 
    </Grid> 

Antwort

17

Sie nicht die Hintergrundfarbe auf der Grid.Row einstellen selbst, anstatt den Hintergrund Eigenschaft auf, was diese Zeile einnimmt.

Zum Beispiel

<Grid Style="{StaticResource LayoutRootStyle}"> 
    <Grid.RowDefinitions> 
    <RowDefinition Height="140"/> 
    <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <Grid Background="Red" Grid.Row="0"> 
    <TextBlock>Test</TextBlock> 
    </Grid> 
</Grid> 

EDIT: für Silverlight aktualisiert; TextBlock hat keinen Hintergrund, daher müssen Sie das Steuerelement in einen anderen Rahmen oder Gittercontainer legen, der über Hintergrund verfügt. Der Code wurde aktualisiert, um dies zu berücksichtigen.

+0

leider ein Textblock Artikel enthält nicht von einem Hintergrund Eigenschaft angeben können. Ich habe meinen Beitrag bearbeitet, um zu zeigen, welche Artikel in dieser Zeile enthalten sind. – user1951083

+0

Ah, ich entschuldige mich, ich habe das silverlight-Tag auf Ihrem Post nicht gesehen, der WPF TextBlock hat Background. – Dutts

+0

Aber ich möchte nicht den Hintergrund nur der Schaltfläche ändern, es muss die gesamte Zeile sein. – user1951083

2

Wie zum Einfügen Grenze, wo Sie es brauchen

<Grid Style="{StaticResource LayoutRootStyle}"> 
    <Grid.RowDefinitions> 
    <RowDefinition Height="140"/> 
    <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <Border Background="Red" Grid.ColumnSpan="1"></Border> 
    <TextBlock>Test</TextBlock> 
    <Border Background="blue" Grid.Row="1" Grid.ColumnSpan="1"></Border> 
    <TextBlock Grid.Row="1">Test2</TextBlock> 
</Grid> 

beachten Sie, dass Sie die Spalten mehr Spalten erstrecken bei umfassen