2010-12-12 6 views
0

J'ai créé un bouton dans Blend en modifiant son style. J'ai ajouté plusieurs blocs de texte avec l'intention d'afficher des données à l'utilisateur en temps réel. Cependant, je ne sais pas comment interfacer avec ces blocs de texte dans mon code.Windows 7 Bouton de téléphone avec plusieurs blocs de texte

Mon style XAML est le suivant:

<ControlTemplate TargetType="Button"> 
         <Grid Background="Transparent"> 
          <VisualStateManager.VisualStateGroups> 
           <VisualStateGroup x:Name="CommonStates"> 
            <VisualState x:Name="Normal"/> 
            <VisualState x:Name="MouseOver"/> 
            <VisualState x:Name="Pressed"/> 
            <VisualState x:Name="Disabled"/> 
           </VisualStateGroup> 
          </VisualStateManager.VisualStateGroups> 
          <Border x:Name="ButtonBackground" BorderThickness="{TemplateBinding BorderThickness}" Background="{StaticResource PhoneAccentBrush}" CornerRadius="0" Margin="8,12,12,12"> 
           <TextBlock Margin="121,5,98,0" TextWrapping="Wrap" Text="Current Program:" Height="36" VerticalAlignment="Top"/> 
          </Border> 
          <TextBlock Margin="92,68,80,81" TextWrapping="Wrap" Text="" RenderTransformOrigin="0.265,0.51" HorizontalAlignment="Center" Width="271" x:Name="programName"/> 
          <TextBlock Height="32" Margin="21,0,16,12" TextWrapping="Wrap" Text="Date:" VerticalAlignment="Bottom" x:Name="CurrentDate"/> 
         </Grid> 
        </ControlTemplate> 

Mon code pour afficher le bouton est la suivante:

<Grid x:Name="middleRow" Grid.Row="2"> 
     <Button Content="Button" Margin="8,8,0,8" Style="{StaticResource ButtonCenter}" x:Name="Current" Click="Current_Click" d:LayoutOverrides="GridBox" /> 
    </Grid> 

Dans mon code derrière après la InitializeComponent(); Je voudrais changer le bloc de texte ProgramName et le bloc de texte CurrentDate.

Je pense que je pourrais avoir à créer un contrôle pour le faire mais je ne suis pas sûr. Mes tentatives pour le faire ont échoué (erreurs diverses). Puis-je accéder à ces blocs de texte dans le code? S'il vous plaît, faites-moi savoir.

MISE À JOUR:

je en faire liquidée comme ceci:

<Button Margin="8,8,0,8" x:Name="Current" Click="Current_Click"> 
    <Button.Content> 
     <StackPanel> 
      <TextBlock x:Name="ProgramName" Text="program name" HorizontalAlignment="Center" /> 
      <TextBlock x:Name="CurrentDate" Text="current date" HorizontalAlignment="Center" /> 
     </StackPanel> 
    </Button.Content> 
</Button> 

J'appliqué mes styles à partir du modèle dans le mélange et il semble fonctionner maintenant.

Répondre

2

Vous ne pouvez pas référencer des contrôles dans un style par son nom car il pourrait y en avoir plusieurs copies sur une page.

Si vous avez fait votre bouton dans un contrôle personnalisé, vous pouvez créer le texte pour les propriétés ProgramTitle et CurrentDate (qui seront très faciles à configurer).

Vous pouvez également utiliser la liaison de données pour définir ces valeurs.

Questions connexes