Quantcast
Channel: Windows Presentation Foundation (WPF) forum
Viewing all articles
Browse latest Browse all 18858

Thread and loading animation

$
0
0

Hi 

I am a beginner in C # WPF. I have two problems that I want to share with you so that you can help me 
In one part of my application I have a textbox a button on my form. 
On button click, I make a query on the database and I execute other tasks. 
The execution time is a little long before the results are displayed. 

So I would like to display the message "Please wait, loading" for the user during treatment. and also display a gif file (loading) next to the message. 
I would like the message in a label next to my textbox and not in another window or dialog. 
I read on the forums that i have to use threads but I don' t understand  it properly. 


I finally found a code that m 'solved the problem half.

public static void ForceUIToUpdate()
        {
            DispatcherFrame frame = new DispatcherFrame();

            Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Render, new DispatcherOperationCallback(delegate(object parameter)
            {
                frame.Continue = false;
                return null;
            }), null);

            Dispatcher.PushFrame(frame);
        }
		
		private void Button_Click_4(object sender, RoutedEventArgs e)
        {


           this.pictureBoxLoading.Visibility = System.Windows.Visibility.Visible;
         this.status.Content= "Please wait, loading";
           ForceUIToUpdate();
// function for long treat
		   runCode();
          md.Visibility = System.Windows.Visibility.Collapsed;
          this.pictureBoxLoading.Visibility  = System.Windows .Visibility .Collapsed ;
            this.status.Content= "";
          }

My xaml code

<Grid x:Name="AddboxGrid"  Grid.Row ="1" Background="#FFB6B6B6" Height="80" ><Grid   Margin="0,1,0,0" Width="229" Background="#FFE8E8E8" HorizontalAlignment="Left" VerticalAlignment="Top" Height="79" ><TextBox  x:Name="url_or_rss" Style="{StaticResource StandardPlaceholder }"  HorizontalAlignment="Left" Height="23"  TextWrapping="NoWrap"    VerticalAlignment="Top" Width="219"   BorderBrush="#FFB6B6B6" BorderThickness="1" Margin="4,7,0,0" Foreground="#FF3A3939"/><Button Content="Add"  Style="{StaticResource btnStyle}"  HorizontalAlignment="Left" Margin="180,41,0,0" VerticalAlignment="Top" Width="42" Click="Button_Click_4" Height="23" FontSize="12"/><Label Content="1" Name="Addbox" HorizontalAlignment="Left" Margin="39,39,0,0" VerticalAlignment="Top" Visibility="Collapsed"/><Label Content="" Name="status" HorizontalAlignment="Right" Margin="0,43,79,0" VerticalAlignment="Top" Width="130"/><WindowsFormsHost   x:Name="pictureBoxLoading" Margin="-11,36,188,6" Width="20" Height="18"  ><wf:PictureBox x:Name="picture" ImageLocation="E:\3.gif" Height="10"    /></WindowsFormsHost></Grid>

I found it easy and the result is what I wanted except that the GIF is no longer running, the image remains static. 
But if I 'use image on other grid, it runs well. 

then I wonder if the code that I found was the right solution for my problem. 
If so how could I turn my gif (animated picture) during the processing of the transaction. 

If not, what code should be used to get best  Result.

Thanks for your help


AS


Viewing all articles
Browse latest Browse all 18858

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>