91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

如何自定義C#中的Progress樣式

c#
小樊
96
2024-09-02 13:10:05
欄目: 編程語言

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

  1. 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樣式。

  1. 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樣式。您可以根據需要調整樣式以滿足您的需求。

0
临清市| 龙南县| 渝中区| 金堂县| 昌图县| 金溪县| 珲春市| 上蔡县| 清流县| 桦川县| 黎城县| 绿春县| 汝南县| 富川| 武胜县| 定南县| 乐亭县| 沙坪坝区| 曲沃县| 武隆县| 右玉县| 临海市| 蓝田县| 大城县| 汉川市| 格尔木市| 棋牌| 临颍县| 菏泽市| 德清县| 永清县| 张家川| 昌江| 惠安县| 天台县| 罗田县| 蕉岭县| 新邵县| 寿阳县| 读书| 泸州市|