Gcobani Mkontwana

Gcobani Mkontwana

  • 566
  • 1.9k
  • 406.1k

How to create a status bar in wpf using c#?

Sep 6 2022 10:59 PM

Hi Team

I have a status bar, but i want to create few logic to it. One start button to start the proces, second button to stop the process and last button to release when process is released.

// Requirement

I need some help, I have status bar but want to implement following logic.

a)Status bar must display information to the user such as; -Button to start and stop process(Started , Processed , Elapsed)

b) Start button must Repeat the below exactly every 500 ms c) Start button must als Serialize the object using a Json serializer

  • Send the json string using a TCP socket. d)Stop button must Pressing stop the echo process.

The status bar must show these details to a user. How do i create this?

Title="Simple Status Bar" Height="350" Width="525">  
    <Grid Background="BlanchedAlmond">  
        <TextBlock FontSize="50" Margin="200,-12,175,258" RenderTransformOrigin="1.443,0.195">Timer</TextBlock>  
        <TextBlock x:Name="clocktxtblock" FontSize="70" Margin="118,38,37,183"></TextBlock>  
        <Button x:Name="startbtn" Margin="38,137,350,126" Background="SkyBlue" Content="Start" FontSize="30" Click="startbtn_Click" ></Button>  
        <Button x:Name="stopbtn" Margin="200,137,190,126" Background="SkyBlue" Content="Stop" FontSize="30" Click="stopbtn_Click" ></Button>  
        <Button x:Name="resetbtn" Margin="360,137,28,126" Background="SkyBlue" Content="Reset" FontSize="30" Click="resetbtn_Click" ></Button>  
        <ListBox x:Name="elapsedtimeitem" HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="433" Margin="56,199,0,0"/>


// WPF in C# code for XAML
    namespace StatusBar   
    {  
        public partial class MainWindow: Window   
        {  
            DispatcherTimer dt = new DispatcherTimer();  
            StatusBar  sw = new StatusBar ();  
            string currentTime = string.Empty;  
            public MainWindow()   
            {  
                InitializeComponent();  
                dt.Tick += new EventHandler(dt_Tick);  
                dt.Interval = new TimeSpan(0, 0, 0, 0, 1);  
            }  
      
            void dt_Tick(object sender, EventArgs e)   
            {  
                if (sw.IsRunning)   
                {  
                    TimeSpan ts = sw.Elapsed;  
                    currentTime = String.Format("{0:00}:{1:00}:{2:00}",  
                    ts.Minutes, ts.Seconds, ts.Milliseconds / 10);  
                    clocktxtblock.Text = currentTime;  
                }  
            }  
      
            private void startbtn_Click(object sender, RoutedEventArgs e)  
            {  
                sw.Start();  
                dt.Start();  
            }  
      
            private void stopbtn_Click(object sender, RoutedEventArgs e)   
            {  
                if (sw.IsRunning)  
                {  
                    sw.Stop();  
                }  
                elapsedtimeitem.Items.Add(currentTime);  
            }  
      
            private void resetbtn_Click(object sender, RoutedEventArgs e)   
            {  
                sw.Reset();  
                clocktxtblock.Text = "00:00:00";  
            }  
        }  
    } 

 


Answers (1)