Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在VisualStudio中创建一个按钮,该按钮同时充当进度条?_C#_.net - Fatal编程技术网

C# 如何在VisualStudio中创建一个按钮,该按钮同时充当进度条?

C# 如何在VisualStudio中创建一个按钮,该按钮同时充当进度条?,c#,.net,C#,.net,我想在visualstudio中创建一个填充绿色的按钮,就像单击按钮时按钮本身的进度条一样 因此,基本上我想制作一个按钮,它本身就是一个进度条。我建议制作一个自定义UI,它只是一个按钮,但也使用类似进度条的模式。告诉它总进度目标是什么,并在应用程序取得进展时调用函数update\u progress()。调用update\u progress()时,可以使用一个简单的图形矩形为按钮上色,其大小基于当前和总进度 如果希望在进度条不移动的情况下像进度条那样设置动画,则会更加困难,因为必须有一个动画线

我想在
visualstudio
中创建一个填充绿色的
按钮,就像单击按钮时按钮本身的
进度条一样


因此,基本上我想制作一个按钮,它本身就是一个
进度条。

我建议制作一个自定义UI,它只是一个按钮,但也使用类似
进度条的模式。告诉它总进度目标是什么,并在应用程序取得进展时调用函数
update\u progress()
。调用
update\u progress()
时,可以使用一个简单的图形矩形为按钮上色,其大小基于当前和总进度


如果希望在进度条不移动的情况下像进度条那样设置动画,则会更加困难,因为必须有一个动画线程(或将不断调用更新动画功能的东西)。为此,您可以根据计数器的位置绘制动画高亮显示,该计数器按当前进度递增。

您使用的是哪个UI?Xaml,forms?我正在使用WinForms和DotNet Framework 4.7.2从内置WinForms类派生您自己的类是一种标准做法。Button类有点痛苦,因为它不允许自定义其渲染器。但这里没什么大不了的,您可以简单地重写OnPaint(),调用base.OnPaint()并对其进行过度绘制。Graphics.FillRectangle()用于绘制背景和进度,TextRender.DrawText()用于恢复Text属性。