2011-09-28 3 views
0

Je modifie le style "ChildWindow" par défaut et je souhaite spécifier une image différente de celle du 'X' qui est présent par défaut. J'ai essayé différentes choses, comme l'accrochage dans le OnApplyTemplate et OnOpened, où je peux avoir accès programmatique au bouton, comme ceci:Modifier ChildWindow CloseButton image Silverlight 3

Button closeButton = this.GetTemplateChild("CloseButton") as Button; 

Pourtant closeButton.Content est toujours nulle. J'ai essayé de régler ceci à mon image et il est réglé, mais l'interface utilisateur affiche toujours le «X» par défaut. J'ai appelé UpdateLayout() aussi bien en vain.

Existe-t-il un moyen de le faire par programmation ou via XAML? J'ai copié le style par défaut et apporté des modifications qui sont affectées, mais c'est un changement qui m'a bloqué. Ci-dessous un extrait du style XAML Je travaille avec:

<!-- Header with Title--> 
<Border x:Name="Chrome" Width="Auto" CornerRadius="5,5,0,0" Background="{StaticResource ChildWindowHeaderBackgroundBrush}"> 
    <Grid Height="Auto" Width="Auto"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition/> 
      <ColumnDefinition Width="30"/> 
     </Grid.ColumnDefinitions> 
     <ContentControl Content="{TemplateBinding Title}" 
      IsTabStop="False" 
      FontWeight="Bold" 
      HorizontalAlignment="Stretch" 
      VerticalAlignment="Center" 
      Margin="6,0,6,0"/>  
     <Button x:Name="CloseButton" Margin="0,5,0,5" Grid.Column="2" IsTabStop="False" HorizontalAlignment="Center" VerticalAlignment="Center" Width="15" Height="14" Style="{StaticResource ButtonStyle}"/> 
    </Grid> 
</Border> 

J'ai ajouté une image au bouton via XAML et il ne montre toujours pas.

Répondre

0

Il est tout géré par le style, dans un ControlTemplate:

<Style x:Key="ButtonStyle" TargetType="Button"> 
    <Setter Property="Padding" Value="0"/> 
    <Setter Property="BorderThickness" Value="0"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="Button"> 
       <Grid> 
        <VisualStateManager.VisualStateGroups> 
         <VisualStateGroup x:Name="CommonStates"> 
         <VisualState x:Name="Disabled"/> 
         <VisualState x:Name="Normal"/> 
         <VisualState x:Name="Pressed"/> 
         <VisualState x:Name="MouseOver"> 
          <Storyboard> 
          <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="mouseOverImage"> 
           <DiscreteObjectKeyFrame KeyTime="0"> 
           <DiscreteObjectKeyFrame.Value> 
            <Visibility>Visible</Visibility> 
           </DiscreteObjectKeyFrame.Value> 
           </DiscreteObjectKeyFrame> 
          </ObjectAnimationUsingKeyFrames> 
          <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="normalImage"> 
           <DiscreteObjectKeyFrame KeyTime="0"> 
           <DiscreteObjectKeyFrame.Value> 
            <Visibility>Collapsed</Visibility> 
           </DiscreteObjectKeyFrame.Value> 
           </DiscreteObjectKeyFrame> 
          </ObjectAnimationUsingKeyFrames> 
          </Storyboard> 
         </VisualState> 
         </VisualStateGroup> 
        </VisualStateManager.VisualStateGroups> 
        <Image x:Name="normalImage" Margin="0" Source="/img/status_unknown.png" Stretch="None" /> 
        <Image x:Name="mouseOverImage" Margin="0" Source="/img/up.png" Stretch="None" Visibility="Collapsed" /> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
Questions connexes