2010-06-22 7 views
0

Je crée un modèle pour un bouton. Je veux que le texte placé à l'intérieur du bouton augmente et diminue avec la taille du bouton.Autosize pour le texte dans le modèle de contrôle

Mon style:

<Style x:Key="BigRoundButtonWithNumber" TargetType="{x:Type Button}"> 
    <Setter Property="OverridesDefaultStyle" Value="False"/> 
    <Setter Property="Foreground" Value="White" /> 
    <Setter Property="FontWeight" Value="Bold" /> 
    <Setter Property="FontFamily" Value="Arial" /> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type Button}"> 
       <Grid Height="auto" Width="auto"> 
        <Ellipse > 
         <Ellipse.Fill> 
          <SolidColorBrush Color="Gray"></SolidColorBrush> 
         </Ellipse.Fill> 
        </Ellipse> 
        <Ellipse Margin ="10,10,10,10"> 
         <Ellipse.Fill> 
          <RadialGradientBrush GradientOrigin="0.496,1.052"> 
           <RadialGradientBrush.RelativeTransform> 
            <TransformGroup> 
             <ScaleTransform CenterX="0.5" CenterY="0.5" ScaleX="1.5" ScaleY="1.5"/> 
             <TranslateTransform X="0.02" Y="0.3"/> 
            </TransformGroup> 
           </RadialGradientBrush.RelativeTransform> 
           <GradientStop Offset="0.2" Color="White"/> 
           <GradientStop Offset="1" Color="Green"/> 
          </RadialGradientBrush> 
         </Ellipse.Fill> 
        </Ellipse> 
         <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content="{TemplateBinding Content}" /> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

mon bouton:

<Button Click="Button_Click" Style="{DynamicResource BigRoundButtonWithNumber}"> 
       50 
      </Button> 

Screenshot http://img149.imageshack.us/img149/152/unbenanntab.png

Merci!

Tobi

Répondre

1

Si vous utilisez un ViewBox il redimensionne pour remplir l'espace - changer votre ContentPresenter à ce qui suit.

<Viewbox Panel.ZIndex="99"> 
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content="{TemplateBinding Content}" /> 
</Viewbox> 
+0

Merci pour votre réponse rapide! Cela fonctionne très bien, Merci! – Tobi

Questions connexes