2011-01-05 3 views

Répondre

1

Cela répond XAML 2 questions que j'ai eu des problèmes avec l'aide de l'échantillon standard XAML (affiché par Chris) à partir des sources du Toolkit. J'ai également simplifié le XAML pour ajouter simplement un bouton Annuler.

  1. liaison de données (voir ici: http://forums.silverlight.net/forums/p/163280/368692.aspx)
  2. Hiding la barre de progression par défaut, b/c une fois que vous utilisez modèle de données que vous devez utiliser votre propre barre de progression, de sorte que vous pouvez contrôler le positionnement

REMARQUE: J'utilise Caliburn Micro pour MVVM et, si vous n'utilisez pas MVVM, vous utiliserez probablement un gestionnaire d'événement click normal pour le bouton Annuler.

Exemple de code

:

<Controls:BusyIndicator IsBusy="{Binding IsBusy}" BusyContent="{Binding}"> 
    <Controls:BusyIndicator.BusyContentTemplate> 
     <DataTemplate> 
      <StackPanel Margin="4"> 
       <TextBlock Text="{Binding BusyContent}" FontWeight="Bold" HorizontalAlignment="Center" Margin="2"/> 
       <ProgressBar IsIndeterminate="True" Height="15" Margin="2"/> 
       <Button cal:Message.Attach="CancelBusyIndicator()" Content="Cancel" HorizontalAlignment="Right" Margin="2 2 2 2"/> 
      </StackPanel> 
     </DataTemplate> 
    </Controls:BusyIndicator.BusyContentTemplate> 
    <Controls:BusyIndicator.ProgressBarStyle> 
     <Style TargetType="ProgressBar"> 
      <Setter Property="Visibility" Value="Collapsed"/> 
     </Style> 
    </Controls:BusyIndicator.ProgressBarStyle> 
2

Il n'y a pas besoin d'utiliser Expression Blend - vous pouvez simplement fournir le contrôle avec un BusyContentTemplate. Les exemples Silverlight Toolkit illustrent ceci ici: http://www.silverlight.net/content/samples/sl4/toolkitcontrolsamples/run/default.html. Copier et coller un extrait de ces exemples:

<controlsToolkit:BusyIndicator IsBusy="True" DisplayAfter="0"> 
    <controlsToolkit:BusyIndicator.BusyContentTemplate> 
     <DataTemplate> 
      <StackPanel Margin="4"> 
       <TextBlock Text="Downloading Email" FontWeight="Bold" HorizontalAlignment="Center"/> 
       <StackPanel Margin="4"> 
        <TextBlock Text="Downloading message 4/10..."/> 
        <ProgressBar Value="40" Height="15"/> 
       </StackPanel> 
       <Grid> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition/> 
         <ColumnDefinition/> 
        </Grid.ColumnDefinitions> 
        <Button Grid.Column="0" Content="Pause" HorizontalAlignment="Right" Margin="0 0 2 0"/> 
        <Button Grid.Column="1" Content="Cancel" HorizontalAlignment="Left" Margin="2 0 0 0"/> 
       </Grid> 
      </StackPanel> 
     </DataTemplate> 
    </controlsToolkit:BusyIndicator.BusyContentTemplate> 
</controlsToolkit:BusyIndicator> 

Hope this helps ...

Chris

+0

Je viens de voir ce que je d/l source Toolkit. Je suppose que tout ce qui me manque avec cet extrait est le gestionnaire d'événements pour le bouton _Cancel_, dans lequel je peux définir IsBusy = false. Merci. – RyBolt

Questions connexes