繁体   English   中英

WPF:创建半椭圆按钮

[英]WPF: Create half elliptical button

我不认为这是可能的,但它值得一试看看你们说的话。 我想在C#中创建一个半椭圆按钮(不是XAML,可能是通过另一个曲线球)。 如果我想要按钮的预定尺寸,我会使用图像或类似的东西,但事实并非如此,因为尺寸会发生变化。 这里有更多细节:

  1. 我有一个椭圆,x半径和y半径(或宽度和高度,分别乘以2)。

  2. 我想要两个按钮来填充整个椭圆,每个椭圆占据椭圆的一半。

  3. 我不希望矩形按钮延伸到椭圆之外并被剪裁到父级,我想要实际的椭圆形按钮,除了每个按钮只有椭圆的一半。

  4. 如果这不能使用按钮完成,但使用其他控件,那么我希望该控件能够像按钮一样动作。

任何帮助或建议或指示都会有很大帮助。

在我回答这个问题之前,我想知道为什么你必须在WPF应用程序中避免使用XAML? 你几乎肯定会间接使用XAML,所以为什么不使用它 - 让你的按钮应该是小菜一碟! 这正是它的用途!

这就像你站在砖头和砂浆旁边试图用胶带做房子! :)

你将不得不添加额外的触发器(如IsPressed),但这应该给你一个非常好的主意:

<Button Height="30" Width="30">
    <Button.Style>
        <Style TargetType="{x:Type Button}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Path Name="HalfEllipse" Stroke="Black" StrokeThickness="1" Fill="Blue">
                            <Path.Data>
                                <PathGeometry>
                                    <PathFigure IsFilled="True" StartPoint="0,0">
                                        <PolyBezierSegment Points="5,30 25,30 30,0" />
                                    </PathFigure>
                                </PathGeometry>
                            </Path.Data>
                        </Path>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter TargetName="HalfEllipse" Property="Fill">
                                    <Setter.Value>
                                        <SolidColorBrush Color="Green"/>
                                    </Setter.Value>
                                </Setter>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Button.Style>
</Button>

有关详细信息,请参阅此页面: http//www.codeproject.com/KB/WPF/glassbuttons.aspx

使用XAML,严重的是XAML起初可能看起来令人生畏,但这并不是你为自己创造的头痛,试图纯粹在代码背后做这件事。

自定义WPF按钮样式

使用Blend逐步介绍样式

XAML等级100

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM