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