如何自定义C#中的Progress样式

   2024-09-30 4490
核心提示:在C#中,自定义ProgressBar样式通常涉及到使用Windows Presentation Foundation (WPF)或Windows Forms (WinForms)WPF自定义Progr

在C#中,自定义ProgressBar样式通常涉及到使用Windows Presentation Foundation (WPF)或Windows Forms (WinForms)

WPF自定义ProgressBar样式:

首先,创建一个新的WPF项目。然后,打开MainWindow.xaml文件并添加以下代码:

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        Title="Custom ProgressBar" Height="150" Width="300">    <Grid>       <ProgressBar Name="MyProgressBar" Value="50" Maximum="100" Minimum="0" Height="20" />    </Grid></Window>

接下来,打开MainWindow.xaml.cs文件并添加以下代码:

using System.Windows;namespace CustomProgressBar{    public partial class MainWindow : Window    {        public MainWindow()        {            InitializeComponent();            MyProgressBar.Value = 50;        }    }}

现在,我们将自定义ProgressBar的样式。为此,请在MainWindow.xaml文件中添加以下代码:

   <Style TargetType="{x:Type ProgressBar}">       <Setter Property="Template">           <Setter.Value>               <ControlTemplate TargetType="{x:Type ProgressBar}">                   <Border BorderBrush="Black" BorderThickness="1" CornerRadius="3">                        <Grid>                            <Rectangle Fill="LightGray" RadiusX="3" RadiusY="3"/>                            <Rectangle Name="PART_Track" Margin="1"/>                            <Decorator Name="PART_Indicator" Margin="1">                                <Grid>                                    <Rectangle Fill="Green" RadiusX="3" RadiusY="3"/>                                    <TextBlock Text="{Binding Value, RelativeSource={RelativeSource TemplatedParent}, StringFormat={}{0}%}" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center"/>                                </Grid>                            </Decorator>                        </Grid>                    </Border>                </ControlTemplate>            </Setter.Value>        </Setter>    </Style></Window.Resources>

这将创建一个带有绿色进度条和白色百分比文本的自定义ProgressBar样式。

WinForms自定义ProgressBar样式:

首先,创建一个新的WinForms项目。然后,向项目中添加一个名为CustomProgressBar的新用户控件。接下来,双击CustomProgressBar以打开设计器。

在设计器中,从工具箱中将一个Panel控件拖放到CustomProgressBar上。将该面板的Dock属性设置为Fill。然后,将Panel的背景颜色更改为所需的进度条颜色(例如,绿色)。

接下来,打开CustomProgressBar.cs文件并添加以下代码:

using System.ComponentModel;using System.Drawing;using System.Windows.Forms;namespace CustomProgressBar{    public partial class CustomProgressBar : UserControl    {        private int _value;        [DefaultValue(0)]        public int Value        {            get { return _value; }            set            {                _value = value;                Invalidate();            }        }        public CustomProgressBar()        {            InitializeComponent();        }        protected override void OnPaint(PaintEventArgs e)        {            base.OnPaint(e);            int progressWidth = (int)(Width * ((double)_value / 100));            e.Graphics.FillRectangle(new SolidBrush(panel1.BackColor), 0, 0, progressWidth, Height);            using (Font font = new Font("Arial", 10))            {                string text = $"{_value}%";                SizeF textSize = e.Graphics.MeasureString(text, font);                e.Graphics.DrawString(text, font, Brushes.White, (Width - textSize.Width) / 2, (Height - textSize.Height) / 2);            }        }    }}

现在,您可以在主窗体上使用自定义ProgressBar。将其添加到窗体上,并在代码中设置Value属性以更新进度。

这些示例展示了如何在C#中为WPF和WinForms应用程序创建自定义ProgressBar样式。您可以根据需要调整样式以满足您的需求。

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号