C# 循环进度按钮WPF/C自定义控件

C# 循环进度按钮WPF/C自定义控件,c#,wpf,xaml,wpf-controls,C#,Wpf,Xaml,Wpf Controls,我想在我的WPF windows应用程序中制作一个主要是圆形按钮的按钮。我在网上找到了很多教程,使用了很多不同的方法,比如模板和样式,这样我就可以理解其中的部分了 关键是我想要自定义控件,这是我认为我想要的,因为从我的理解来看,仅仅样式本身不允许我修改按钮的核心功能,用户控件是更多已经完成的控件组,因为我想要的是部分按钮和部分进度条。我希望它是一个圆形按钮,按钮周围有几个像素厚的灰色条带,当我按住按钮时,我可以在灰色条带周围启动一个圆形蓝色条带,当蓝色条带在旋转一圈后到达顶部时,代码中可能会触发

我想在我的WPF windows应用程序中制作一个主要是圆形按钮的按钮。我在网上找到了很多教程,使用了很多不同的方法,比如模板和样式,这样我就可以理解其中的部分了

关键是我想要自定义控件,这是我认为我想要的,因为从我的理解来看,仅仅样式本身不允许我修改按钮的核心功能,用户控件是更多已经完成的控件组,因为我想要的是部分按钮和部分进度条。我希望它是一个圆形按钮,按钮周围有几个像素厚的灰色条带,当我按住按钮时,我可以在灰色条带周围启动一个圆形蓝色条带,当蓝色条带在旋转一圈后到达顶部时,代码中可能会触发一些事件

我一直在尝试在线查找内容,但似乎有很多关于如何制作自定义WPF控件的不连贯和混乱的教程。有些是expression blend,它与visual studio community 2015安装的blend不完全匹配,所以我完全困惑,希望有人能给我指出正确的方向。提前谢谢

您不一定需要自定义控件。您可以使用带有圆形按钮的UserControl,并在按钮边缘上覆盖圆形路径。最初将该路径对象的可见性设置为false,当在按钮上检测到左键单击事件时,使该圆形路径可见并在其上启动旋转变换动画。您应该能够在此基础上展开,以便在需要时停止动画;你的描述没有完全描述你希望它停止的方式


希望这有帮助

您可以轻松自定义常规按钮或切换按钮:

在VS中打开项目 右键单击要编辑的解决方案资源管理器中的xaml 点击Blend中的Design 选择资产选项卡 在控件中查找按钮并将其拖动到第页 右键单击第页上的按钮 编辑模板->编辑副本->确定 对象和时间线选项卡->右键单击边框->更改布局类型->画布 在“属性”选项卡中从画布中删除背景 从资源->形状中拖动省略号 调整省略号大小 转到状态选项卡->已按选定状态 在按下状态下更改省略号的颜色 ... 继续。
这个问题对StackOverflow来说太宽泛了哦,对不起,我可以编辑它使它更具体。我真的希望能有一个链接,指向如何制作自定义控件,或者有人提供他们如何实现这一点的输入。因此,当你的外圈在按下状态下达到360度旋转时,你只想发出一个命令/方法或其他什么?或者还有比这更重要的吗?对。我希望环的一次旋转需要设定的时间量,比如3秒,当环完成一次旋转或按下按钮3秒后,我希望调用一个可以执行某些任务的函数。这有点像点击延迟时间,这样人们就有机会在某个动作生效之前取消他们的动作。这听起来正是我想要的!我将更深入地研究重叠的环形路径,看看我可以到达哪里!谢谢很高兴这有帮助!我不知道为什么我没有像user2536990那样建议椭圆。以正确的方式设置渐变笔刷并旋转的椭圆应该是完美的。