2010-12-12 2 views
0

Я создал кнопку в Blend, отредактировав ее стиль. Я добавил несколько текстовых блоков с целью отображения данных пользователю в режиме реального времени. Однако я не знаю, как взаимодействовать с этими текстовыми блоками в моем коде.Windows 7 Кнопка телефона с несколькими текстовыми блоками

Мой стиль XAML это:

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

Мой код для отображения кнопки заключается в следующем:

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

В моем коде позади после InitializeComponent(); Я хотел бы изменить текстовый блок ProgramName и текстовый блок CurrentDate.

Я думаю, что мне, возможно, придется создать элемент управления для этого, но я не уверен. Мои попытки сделать это не удалось (разное). Могу ли я получить доступ к этим текстовым блокам в коде? Пожалуйста, дайте мне знать.

UPDATE:

я ликвидируется делать это так:

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

я применил свои стили из шаблона в Blend, и это, кажется, работает.

ответ

2

Вы не можете ссылаться на элементы управления в стиле по имени, поскольку на странице может быть несколько копий.

Если вы создали свою кнопку в пользовательском элементе управления, вы можете сделать текст для свойств ProgramTitle и CurrentDate (которые очень легко установить).

В качестве альтернативы вы можете использовать привязку данных для установки этих значений.

Смежные вопросы