xaml边框样式

时间:2011-10-10 14:28:49

标签: wpf xaml

我为按钮创建样式:

<Style TargetType="{x:Type Button}">
        <Setter Property="Background" Value="#8A88E1"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Grid>
                        <Ellipse Fill="{TemplateBinding Background}"/>
                        <ContentPresenter HorizontalAlignment="Center"
                        VerticalAlignment="Center"/>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>

    </Style>

一切都好。现在我想写一些围绕椭圆边界的样式。

2 个答案:

答案 0 :(得分:2)

Erno打败了我的答案,但这是一个例子:

<Style TargetType="{x:Type Button}">
  <Setter Property="Background" Value="#8A88E1"/>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="Button">
        <Grid>
          <Ellipse Fill="{TemplateBinding Background}" Stroke="..." StrokeThickness="..." />
            <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </Grid>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

您应该能够将Stroke绑定到父BorderBrush,但我还没有对其进行测试:Stroke="{TemplateBinding BorderBrush}"。但是,您将无法将StrokeThickness直接绑定到父BorderThickness,因为它们是两种不同的类型(Ellipse.StrokeThickness是统一的,而double值是简单的Button.BorderThickness {1}}的类型为Thickness。)。

答案 1 :(得分:1)

有两种选择:

  1. 设置椭圆的笔触和笔触厚度或

  2. 将模板添加到边框并在模板中使用椭圆。

  3. 如果您需要帮助,请告诉我们。