私は WPF アプリケーションで ProgressBar コントロールを使用していますが、この古い Windows 3.1 Progress Blocksを取得しています。VB6では滑らかなProgressBarを表示するプロパティがありました。WPFにそのようなものはありますか?
4 に答える
このKB 記事は、探しているものを説明しているようです...記事の VB バージョンへのリンクもあります。
これに対する直接的な解決策を見つけることができませんでした。しかし、私はもっと良いものを見つけました。WPF では、Windows テーマを使用できます。Windows XP を使用しており、WPF アプリケーションに Vista-Aero テーマを使用しているため、すべてのコントロールが Vista-Aero のように見えます。
これがコードです...
Application.xaml.vb に移動して書き込みます...
Enum appThemes
Aero
Luna
LunaMettalic
LunaHomestead
Royale
End Enum
Private Sub Application_Startup(ByVal sender As Object, ByVal e As System.Windows.StartupEventArgs) Handles Me.Startup
setTheme(appThemes.Aero)
End Sub
''' <summary>
''' Function to set the default theme of this application
''' </summary>
''' <param name="Theme">
''' Theme of type appThemes
''' </param>
''' <remarks></remarks>
Public Sub setTheme(ByVal Theme As appThemes)
Dim uri As Uri
Select Case Theme
Case appThemes.Aero
' Vista Aero Theme
uri = New Uri("PresentationFramework.Aero;V3.0.0.0;31bf3856ad364e35;component\\themes/Aero.NormalColor.xaml", UriKind.Relative)
Case appThemes.Luna
' Luna Theme
uri = New Uri("PresentationFramework.Luna;V3.0.0.0;31bf3856ad364e35;component\\themes/Luna.NormalColor.xaml", UriKind.Relative)
Case appThemes.LunaHomestead
' Luna Mettalic
uri = New Uri("PresentationFramework.Luna;V3.0.0.0;31bf3856ad364e35;component\\themes/Luna.Metallic.xaml", UriKind.Relative)
Case appThemes.LunaMettalic
' Luna Homestead
uri = New Uri("PresentationFramework.Luna;V3.0.0.0;31bf3856ad364e35;component\\themes/Luna.Homestead.xaml", UriKind.Relative)
Case appThemes.Royale
' Royale Theme
uri = New Uri("PresentationFramework.Royale;V3.0.0.0;31bf3856ad364e35;component\\themes/Royale.NormalColor.xaml", UriKind.Relative)
End Select
' Set the Theme
Resources.MergedDictionaries.Add(Application.LoadComponent(uri))
End Sub
(C#に変換できるといいのですが)
あなたが何をしたいのかわからない。Vista の起動時のように左右に「スイープ」するプログレス バーが必要な場合は、IsIndetermined = true を使用できます。
実際に 0% から 100% に変更したい場合は、次の msdn の例に示すように値をアニメーション化する必要があります: http://msdn.microsoft.com/en-us/library/system.windows.controls. progressbar.aspx を使用するか、コード ビハインド (ほとんどの場合バックグラウンド ワーカーから) または変化する値へのバインディングを介して値を明示的に設定します。
それにもかかわらず、WPF ProgressBar は常に「スムーズ」である必要があります。UI が、RemoteDesktop 接続を介して、よりシンプルなバージョンにデフォルト設定される可能性があります。
最近、Vista で開発した後、XP でプログレス バーが表示されることに悩まされていました。DLL から Vista スタイルをロードするために見た提案を試したくはありませんでしたが、この記事はまさに私が探していたものを提供してくれました。vista の外観 - 新しいクラスはありません。さらに、タイマーにガラス状のハイライトがあります。記事に写真はありませんが、Vista の ProgressBar にそっくりです。