2017-04-02 11 views
1

テンプレートボタンの中央にテキストを配置することができません。 「OK」はボトム中央にとどまるか、ボタンの境界線を叩くだけです。xamlテンプレートボタンの中央のテキストの例

<Window.Resources> 
    <ControlTemplate x:Key="BT_Kids" TargetType="{x:Type Button}"> 
     <Grid> 
      <Ellipse HorizontalAlignment="Left" Height="44.8" Stroke="Black" VerticalAlignment="Top" Width="71.2"> 
       <Ellipse.Fill> 
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
         <GradientStop Color="Black" Offset="0"/> 
         <GradientStop Color="#FF4363EA" Offset="1"/> 
        </LinearGradientBrush> 
       </Ellipse.Fill> 
      </Ellipse> 
      <Viewbox> 
       <ContentControl Margin="10" Content="{TemplateBinding Content}"/> 
      </Viewbox> 
     </Grid> 
    </ControlTemplate> 
</Window.Resources> 
<Grid Margin="0,0,0,2.4"> 

    <Button 
      HorizontalAlignment="Left" 
      VerticalAlignment="Top" 
      Width="75" Margin="189.6,24.6,0,0" 
      Template="{DynamicResource BT_Kids}" FontSize="15">OK</Button> 

</Grid> 

答えて

1

を:

<ControlTemplate x:Key="BT_Kids" TargetType="{x:Type Button}"> 
    <Grid> 
     <Ellipse HorizontalAlignment="Left" Height="44.8" Stroke="Black" VerticalAlignment="Top" Width="71.2"> 
      <Ellipse.Fill> 
       <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
        <GradientStop Color="Black" Offset="0"/> 
        <GradientStop Color="#FF4363EA" Offset="1"/> 
       </LinearGradientBrush> 
      </Ellipse.Fill> 
     </Ellipse> 
     <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" /> 
    </Grid> 
</ControlTemplate> 

<Button 
     HorizontalAlignment="Left" 
     VerticalAlignment="Top" 
     Width="75" Margin="189.6,24.6,0,0" 
     HorizontalContentAlignment="Center" 
     VerticalContentAlignment="Center" 
     Template="{DynamicResource BT_Kids}" FontSize="30">OK</Button> 

enter image description here

Ellipseのサイズが固定の場合、内容をViewBoxに入れるのは意味がありません。

0

このお試しください:ButtonFontSizeを調整し、CenterContentPresenterHorizontalAlignmentVerticalAlignmentプロパティを設定し、ViewBoxを削除

<Button ...> 
    <Button.Content> 
      <StackPanel Padding="0" HorizontalAlignment="Center" VerticalAlignment="Center"> 
      <TextBlock Text="OK"/> 
      </StackPanel> 
     </Button.Content> 
</Button> 
関連する問題