2009-05-13 7 views
1

Je veux changer mon modèle de fenêtre, par exemple:En changeant un modèle de fenêtre tous les contrôles sont partis

<Style x:Key="SilverGreenWindowStyle" TargetType="{x:Type Window}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate> 
       <Grid Background="{StaticResource SilverGreenBackground}" Width="503" Height="383"> 
        <Rectangle Margin="192,86,21,119" Fill="{StaticResource SilverGreenRectangleBackground}" Width="200" Height="200"/> 
       </Grid>  
      </ControlTemplate> 
     </Setter.Value>  
    </Setter> 
</Style> 

et qui cause les contrôles Windows pour devenir invisible. Comment puis-je les garder visibles?

Répondre

5

Vous devez inclure un élément dans votre modèle pour indiquer à la fenêtre où afficher le contenu. ContentPresenter fait la magie pour vous: il rendra le contenu de la fenêtre à n'importe quelle position que vous l'insérez dans l'arbre.

Si vous voulez que le contenu régulier pour afficher au-dessus du rectangle, par exemple, vous pouvez le faire:

<Style x:Key="SilverGreenWindowStyle" TargetType="{x:Type Window}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate> 
       <Grid Background="{StaticResource SilverGreenBackground}" Width="503" Height="383"> 
        <Rectangle Margin="192,86,21,119" Fill="{StaticResource SilverGreenRectangleBackground}" Width="200" Height="200"/> 
        <ContentPresenter/> 
       </Grid>  
      </ControlTemplate> 
     </Setter.Value>  
    </Setter> 
</Style> 
Questions connexes