在WPF中创建弯曲控件

时间:2012-11-01 14:48:29

标签: c# wpf

在WPF中可以创建一个看起来像这样的控件(例如按钮)吗?

curved control

实际上,我想绘制4个按钮,使它们定位为圆形。

2 个答案:

答案 0 :(得分:1)

以下XAML可能会让您大致了解如何从Button模板中的Path开始。但是,它错过了像MouseOver和Pressed状态的视觉反馈等基本内容。

<Grid>
    <Grid.Resources>
        <StreamGeometry x:Key="SegmentGeometry">M 5,0 A 10,10 0 0 0 15,10 L 15,15 A 15,15 0 0 1 0,0 Z</StreamGeometry>
        <ControlTemplate x:Key="ButtonTemplate">
            <Viewbox>
                <Path Fill="Transparent" Stroke="Black" StrokeThickness="1"
                      Data="{StaticResource SegmentGeometry}"/>
            </Viewbox>
        </ControlTemplate>
        <Style x:Key="ButtonStyle" TargetType="Button">
            <Setter Property="Template" Value="{StaticResource ButtonTemplate}"/>
        </Style>
    </Grid.Resources>
    <Button Width="100" Height="100" Style="{StaticResource ButtonStyle}">
        <Button.LayoutTransform>
            <RotateTransform Angle="135"/>
        </Button.LayoutTransform>
    </Button>
</Grid>

答案 1 :(得分:0)

使用坐标/路径/几何不是直截了当的。尝试使用Microsoft的Expression Blend。它是一个像Photoshop一样的用户界面,但仅适用于Xaml。:)