2010-12-12 5 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> 

私のコードはこれです:)のInitializeComponent(後の背後にある私のコードでは

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

。 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プロパティのテキストを簡単に設定できます。

また、これらの値を設定するためにデータバインディングを使用することもできます。

関連する問題