はじめに
この連載ではSilverlightとWPFで使える、逆引きTipsを紹介していきます。今回は、WPFとSilverlightで使えるプログレスバー機能(ProgressBarコントロール)について取り上げます。
対象読者
Visual BasicまたはVisual C#、および、Silverlight/WPFのプロジェクト作成方法、XAMLについて基礎的な知識がある方を対象としています。
必要な環境
下記を使ってプログラミングできる環境(筆者はこの環境で検証し執筆しています)。
- Visual Studio 2010
- Microsoft Silverlight 4 Tools for Visual Studio 2010
Microsoft Silverlight 4 Tools for Visual Studio 2010は、Microsoftダウンロードセンターより入手できます。Visual Studio 2010が準備できない方は、Visual Studio 2008およびVisual Studio 2008 Silverlight Tools 3.0の組み合わせでも構いません。ただし、この場合は本連載で取り上げるTipsが動作しない可能性もあります。あらかじめご了承ください。
今回紹介するTips
- 最小値と最大値を設定する
- 進捗状況値の取得/設定をする
- 進捗状況の表示方法を設定する
- プログレスバー上に進捗率を表示する
- 現在値がMaximum値に達したときにメッセージを表示する
- 配置方向を設定する
- 値の進捗方向を反転させる
- 進捗状況をイメージで表示する
- 色をカスタマイズする
- 円形のプログレスバーを作成する
01.最小値と最大値を設定する
ProgressBar コントロールの最小値を設定するには Minimum プロパティを、最大値を設定するには Maximum プロパティを使用します。
既定では Minimum = 0, Maximum = 100 となっています。 下記は、ProgressBar の最小値に0、最大値に200を設定する例です。

<ProgressBar Name="ProgressBar1"
VerticalAlignment="Top" HorizontalAlignment="Left"
Margin="12,12,0,0" Height="16" Width="254"
Minimum="0" Maximum="200" Value="100"/>
<TextBlock Name="TextBlock1"
VerticalAlignment="Top" HorizontalAlignment="Left"
Margin="12,35,0,0" Height="23"
Text="Minimum" />
<TextBox Name="txtMinimum"
VerticalAlignment="Top" HorizontalAlignment="Left"
Margin="72,34,0,0" Height="24" Width="45"
TextAlignment="Right"
Text="{Binding ElementName=ProgressBar1, Path=Minimum}"/>
<TextBlock Name="TextBlock2"
VerticalAlignment="Top" HorizontalAlignment="Left"
Margin="123,34,0,0" Height="23"
Text="Maximum" />
<TextBox Name="txtMaximum"
VerticalAlignment="Top" HorizontalAlignment="Left"
Margin="186,34,0,0" Height="24" Width="45"
TextAlignment="Right"
Text="{Binding ElementName=ProgressBar1, Path=Maximum}"/>
Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
'最小値と最大値を設定
ProgressBar1.Minimum = 0
ProgressBar1.Maximum = 200
End Sub
private void Window_Loaded(object sender, RoutedEventArgs e)
{
// 最小値と最大値を設定
progressBar1.Minimum = 0;
progressBar1.Maximum = 200;
}
最小値を設定するにはMinimumプロパティ、最大値を設定するにはMaximumプロパティを使用する。
