2017-02-01 1 views
1

Dies ist meine Schaltfläche Stil:Anzeigetext über Schaltfläche Bild mit statischer Ressource

 <Style TargetType="local:Button" xmlns:local="clr-namespace:Terminal"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type local:Button}"> 
         <Image x:Name="img" Source="{Binding DefaultImage,RelativeSource={RelativeSource TemplatedParent}, FallbackValue=img/0.png, TargetNullValue=img/0.png}" Stretch="Fill"> 
         </Image> 

         <ControlTemplate.Triggers> 
          <Trigger Property="IsPressed" Value="true"> 
           <Setter Property="Source" TargetName="img" 
             Value="{Binding PressedImage,RelativeSource={RelativeSource TemplatedParent}, FallbackValue=img/1_push.png, TargetNullValue=img/1_push.png}"> 
           </Setter> 
          </Trigger> 
         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

und mein Button-Code lautet wie folgt:

 <local:Button xmlns:local="clr-namespace:Terminal" x:Name="btnLine" Grid.Column="1" Content="LINE" 
        DefaultImage="img/line.png" PressedImage="img/line_pushed.png" Click="btnLine_Click"> 
     </local:Button> 

Das Problem ist Schaltfläche Inhalt wird nicht über die zeigt nach oben Bild. Ich habe auch versucht, TextBlock innerhalb local:Button setzen, aber immer noch kein Glück. Wie man den Inhalt eines Knopfes zeigt?

Antwort

0

Sie haben nicht definiert, wohin der Text in Ihrer Vorlage gehen soll - Sie haben der Schaltfläche gerade gesagt, dass sie nur ein Bild sein soll.

Die Schaltfläche fügt den 'Inhalt' in das Element <ContentPresenter/> in der Kontrollschablone ein. Es ist leicht zu übersehen! So benötigen Sie etwas wie:

<Style TargetType="local:Button" xmlns:local="clr-namespace:Terminal"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type local:Button}"> 
        <Grid> 
         <Image x:Name="img" Source="{Binding DefaultImage,RelativeSource={RelativeSource TemplatedParent}, FallbackValue=img/0.png, TargetNullValue=img/0.png}" Stretch="Fill"> 
         </Image> 
         <ContentPresenter/> 
        </Grid> 
        <ControlTemplate.Triggers> 
         <Trigger Property="IsPressed" Value="true"> 
          <Setter Property="Source" TargetName="img" 
            Value="{Binding PressedImage,RelativeSource={RelativeSource TemplatedParent}, FallbackValue=img/1_push.png, TargetNullValue=img/1_push.png}"> 
          </Setter> 
         </Trigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style>