2009-05-13 3 views
1

Я хочу изменить шаблон окна, например:Изменяя шаблон окна все элементы управления ушли

<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> 

и что вызывает окна управления, чтобы стать невидимым. Как сохранить их видимыми?

ответ

5

Вам необходимо включить элемент в свой шаблон, чтобы указать Окну, где будет отображаться его содержимое. ContentPresenter делает магию для вас: она будет отображать содержимое окна в любом месте, которое вы вставляете в дерево.

Если вы хотите регулярное содержание, чтобы отобразить на верхней части прямоугольника, к примеру, вы можете сделать это:

<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> 
Смежные вопросы