本TipsはWPFのみとなります。あらかじめご了承ください。
DataTriggerクラスを使用すると、「オブジェクトの値が指定した値と等しくなったかどうか」を判定することが可能です。
このことを利用して、ProgressBarの現在値がMaximum値に達したときにメッセージを表示させる例を紹介します。
「プログレスバー上に進捗率を表示する」で紹介したProgressBarのXAMLコードで、TextBlockの部分を下記のように修正します。
このXAMLでは、DataTriggerでProgressBar1のValueをバインディングし、Value属性に”100”を指定しています。
これは「ProgressBar1.Value が100(Maximum値)になったら」を意味し、「この条件を満たした場合は TextBlock1.Textに”ダウンロード完了!!”と表示せよ」ということになります。
このようにXAMLだけでも値を判断してメッセージを表示することが可能です。
XAMLの例
<Grid Margin="12,12,0,0" HorizontalAlignment="Left" Width="249" Height="34" VerticalAlignment="Top"> <ProgressBar Name="ProgressBar1" Minimum="0" Maximum="100" Value="0" /> <Viewbox> <TextBlock Name="TextBlock1" TextAlignment="Center"> <TextBlock.Style> <Style TargetType="TextBlock"> <Style.Triggers> <DataTrigger Binding="{Binding ElementName=ProgressBar1, Path=Value}" Value="100"> <Setter Property="Text" Value="ダウンロード完了!!" /> </DataTrigger> </Style.Triggers> </Style> </TextBlock.Style> </TextBlock> </Viewbox> </Grid>