2016-04-15 26 views
0

我创建了一个按钮风格,工作正常,但现在我想添加圆角,我不能为我的生活弄清楚在哪里把XAML。有人能指引我朝着正确的方向吗?我在哪里WPF风格我把<Border CornerRadius =“8”>

<Style x:Key="myButtonStyle" TargetType="{x:Type Button}"> 
    <Setter Property="Foreground" Value="White"/> 
    <Setter Property="Background" Value="Blue" /> 
    <Setter Property="FontWeight" Value="DemiBold"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type Button}"> 
       <Grid> 
        <Rectangle x:Name="rectangle" Stroke="{TemplateBinding Background}" Fill="{TemplateBinding Background}" RenderTransformOrigin="0.5,0.5"> 
         <Rectangle.RenderTransform> 
          <TransformGroup> 
           <ScaleTransform/> 
           <SkewTransform/> 
           <RotateTransform/> 
           <TranslateTransform/> 
          </TransformGroup> 
         </Rectangle.RenderTransform> 
         <Rectangle.Effect> 
          <DropShadowEffect ShadowDepth="3"/> 
         </Rectangle.Effect> 
        </Rectangle> 
         <ContentPresenter x:Name="contentPresenter" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RenderTransformOrigin="0.5,0.5"> 
         <ContentPresenter.RenderTransform> 
          <TransformGroup> 
           <ScaleTransform/> 
           <SkewTransform/> 
           <RotateTransform/> 
           <TranslateTransform/> 
          </TransformGroup> 
         </ContentPresenter.RenderTransform> 
         </ContentPresenter> 
       </Grid> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsFocused" Value="True"/> 
        <Trigger Property="IsDefaulted" Value="True"/> 
        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter Property="Stroke" Value="Black" TargetName="rectangle"/> 
        </Trigger> 
        <Trigger Property="IsPressed" Value="True"> 
         <Setter Property="RenderTransform" TargetName="rectangle"> 
          <Setter.Value> 
           <TransformGroup> 
            <ScaleTransform/> 
            <SkewTransform/> 
            <RotateTransform/> 
            <TranslateTransform X="2" Y="2"/> 
           </TransformGroup> 
          </Setter.Value> 
         </Setter> 
         <Setter Property="RenderTransform" TargetName="contentPresenter"> 
          <Setter.Value> 
           <TransformGroup> 
            <ScaleTransform/> 
            <SkewTransform/> 
            <RotateTransform/> 
            <TranslateTransform X="2" Y="2"/> 
           </TransformGroup> 
          </Setter.Value> 
         </Setter> 
         <Setter Property="Effect" TargetName="rectangle"> 
          <Setter.Value> 
           <DropShadowEffect ShadowDepth="1"/> 
          </Setter.Value> 
         </Setter> 
        </Trigger> 
        <Trigger Property="IsEnabled" Value="False"/> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
+2

您的模板中没有元素可以在此时支持它。你有一个'Rectangle',你可以很难将'RadiusX'和'RadiusY'设置为8来模拟相同的效果。 –

+2

设置矩形的RadiusX和RadiusY属性。 – Clemens

+0

完美!我如此专注于边界,我忘记了使用半径的全部内容。谢谢! – JimDel

回答

1

这是克里斯·W公司的答案...

你不必在你的模板中的元素在这一点上,甚至支持。您有一个Rectangle,您可以将RadiusX和RadiusY硬设置为8来模拟相同的效果。