terça-feira, 15 de outubro de 2013

ProgressBar com WPF e XAML Barra de Status

Primeiro passo, vamos representar o código do ProgressBar no XAML:
<ProgressBar></ProgressBar>


Vamos à algumas propriedades (Width e Height) representam a Altura e Largura respectivamente, Name, o nome do controle e este identificador é exclusivo. Margin, representa a localização para finalizar HorizontalAlignment e VerticalAlignment o alinhamento.
<ProgressBar Margin="10,10,0,13" Name="ListView1" HorizontalAlignment="Left" VerticalAlignment="Top" Width="300" Height="30" />
Criando valores para o ProgressBar

A Propriedade Value, representa o seu valor atual, vou adicionar 75 e veja como ficará o código e a imagem abaixo:
<ProgressBar Margin="10,10,0,13" Name="PBar" HorizontalAlignment="Left" VerticalAlignment="Top" Width="300" Height="30" Value="75" >



Agora vamos definir o valor de Forma Dinâmica

Existe alguma formas para atualizar o ProgressBar, poderíamos utilizar o Timer ou Animation, mais para este exemplo vamos utilizar DoubleAnimation (Lembre-se de referenciar System.Windows.Media.Animation) usando o método Begin.Animation, veja abaixo:

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            Duration duration = new Duration(TimeSpan.FromSeconds(20));
            DoubleAnimation doubleanimation = new DoubleAnimation(200.0, duration);
            PBar.BeginAnimation(ProgressBar.ValueProperty, doubleanimation);
        }

Flow Direction
A propriedade FlowDirection define o fluxo de ProgressBar. You can set this value either LeftToRight or RightToLeft. Você pode definir esse valor seja LeftToRight ou RightToLeft. The default value is LeftToRight. O valor padrão é LeftToRight.
Colocando o ProgressBar na barra de status (StatusBar)

O Código abaixo mostrará como adicionar com WPF e XAML.
<StatusBar Name="SBar" Grid.Column="0" Grid.Row="5" VerticalAlignment="Bottom" Background="LightBlue"  >
    <StatusBarItem>
        <TextBlock>Status:</TextBlock>
    </StatusBarItem>
</StatusBar>

E com o código abaixo poderá criar em tempo de execução seu ProgressBar, veja o código:
private void CreateDynamicProgressBarControl()
{
    ProgressBar PBar2 = new ProgressBar();
    PBar2.IsIndeterminate = false;
    PBar2.Orientation = Orientation.Horizontal;
    PBar2.Width = 200;
    PBar2.Height = 20;
    Duration duration = new Duration(TimeSpan.FromSeconds(20));
    DoubleAnimation doubleanimation = new DoubleAnimation(200.0, duration);
    PBar2.BeginAnimation(ProgressBar.ValueProperty, doubleanimation);
    SBar.Items.Add(PBar2);

Bons, estudos

0 comentários:

Postar um comentário