C# 在WPF中创建曲线控件

C# 在WPF中创建曲线控件,c#,wpf,C#,Wpf,在WPF中是否可以创建如下所示的控件(例如按钮) 实际上,我想画4个按钮,使它们定位为一个圆 下面的XAML可能会让您大致了解如何从按钮模板中的路径开始。然而,它忽略了一些基本的东西,比如鼠标悬停和按下状态的视觉反馈 <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

在WPF中是否可以创建如下所示的控件(例如按钮)


实际上,我想画4个按钮,使它们定位为一个圆

下面的XAML可能会让您大致了解如何从按钮模板中的路径开始。然而,它忽略了一些基本的东西,比如鼠标悬停和按下状态的视觉反馈

<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>

m5,0a10,10015,10l15,15a15,1501010,0z

以下XAML可能会让您大致了解如何从按钮模板中的路径开始。然而,它忽略了一些基本的东西,比如鼠标悬停和按下状态的视觉反馈

<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>

m5,0a10,10015,10l15,15a15,1501010,0z

使用坐标/路径/几何体不是直截了当的。请尝试从Microsoft使用。它是一个类似于Photoshop的UI,但只适用于Xaml。

使用坐标/路径/几何体并不是简单的。请尝试从Microsoft使用。这是一个类似Photoshop的用户界面,但仅适用于Xaml.:)

这是可能的。你试过什么吗?你可以用a作为按钮的内容。还没有,因为我完全不知道如何开始。目前我只知道如何旋转和倾斜。你可以阅读。这是可能的。你试过什么吗?你可以用a作为按钮的内容。还没有,因为我完全不知道如何开始。目前我只知道如何旋转和倾斜。你可能会读到。是否有其他方法来定义图形,而不是“分段几何体”中设置的坐标,可能以更动态的方式将其封装在可伸缩控件中?当然有。从这里开始阅读:。是否有其他方法来定义图形而不是“SegmentGeometry”中设置的坐标,可能以更动态的方式将其封装在可伸缩控件中?当然有。从这里开始阅读:。