はじめに
この連載では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プロパティを使用する。