現在値がMaximum値に達したときにメッセージを表示する

スポンサーリンク

本TipsはWPFのみとなります。あらかじめご了承ください。

DataTriggerクラスを使用すると、「オブジェクトの値が指定した値と等しくなったかどうか」を判定することが可能です。

このことを利用して、ProgressBarの現在値がMaximum値に達したときにメッセージを表示させる例を紹介します。

現在値が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>
タイトルとURLをコピーしました