2011-01-05 7 views
1

私はあなたがBusyIndi​​catorのテンプレートを編集できると信じていますが、私は表現のブレンドがないので、これに慣れていません。誰もが私が始めることができるサンプルXAMLを持っていますか?Silverlight 4では、BusyIndi​​catorコントロールにキャンセルボタンを追加する方法はありますか?

私はブレンドを簡単に行うことができますが、標準VS.NETから始める方法は不明です。

答えて

1

私は標準試料のXAMLを使用しての問題を持っていた2つの問題は、(によって投稿このXAMLアドレスChris)をツールキットのソースから削除します。また、キャンセルボタンを追加するだけでXAMLを簡略化しました。

  1. データバインディング(ここを参照してください:http://forums.silverlight.net/forums/p/163280/368692.aspx
  2. 、デフォルトのプログレスバーを非表示にしますが、データテンプレートを使用したら、あなたは位置決め制御することができますので、あなたは、あなた自身のプログレスバーを使用する必要がありますC/B

注:MVVM用にCaliburn Microを使用しています.MVVMを使用していない場合は、キャンセルボタンの通常のクリックイベントハンドラを使用するだけです。

コードサンプル:

<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

Expression Blendを使用する必要はありません。コントロールにBusyContentTemplateを渡すだけで済みます。 Silverlight Toolkitの例では、ここにこれを示しています:http://www.silverlight.net/content/samples/sl4/toolkitcontrolsamples/run/default.html。コピーとこれらの例からスニペットを貼り付け:このことができます

<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> 

希望を...

クリス

+0

私は/ lのツールキットのソースをDと私はこれを見ました。私はこのスニペットで欠けていると思うのは、IsBusy = falseを設定できる_Cancel_ボタンのイベントハンドラです。ありがとう。 – RyBolt

関連する問題