6

私は WPF アプリケーションで ProgressBar コントロールを使用していますが、この古い Windows 3.1 Progress Blocksを取得しています。VB6では滑らかなProgressBarを表示するプロパティがありました。WPFにそのようなものはありますか?

4

4 に答える 4

4

このKB 記事は、探しているものを説明しているようです...記事の VB バージョンへのリンクもあります。

于 2008-09-17T12:09:38.043 に答える
2

これに対する直接的な解決策を見つけることができませんでした。しかし、私はもっと良いものを見つけました。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#に変換できるといいのですが)

于 2009-06-26T09:47:37.483 に答える
0

あなたが何をしたいのかわからない。Vista の起動時のように左右に「スイープ」するプログレス バーが必要な場合は、IsIndetermined = true を使用できます。

実際に 0% から 100% に変更したい場合は、次の msdn の例に示すように値をアニメーション化する必要があります: http://msdn.microsoft.com/en-us/library/system.windows.controls. progressbar.aspx を使用するか、コード ビハインド (ほとんどの場合バックグラウンド ワーカーから) または変化する値へのバインディングを介して値を明示的に設定します。

それにもかかわらず、WPF ProgressBar は常に「スムーズ」である必要があります。UI が、RemoteDesktop 接続を介して、よりシンプルなバージョンにデフォルト設定される可能性があります。

于 2008-09-17T14:18:17.237 に答える
0

最近、Vista で開発した後、XP でプログレス バーが表示されることに悩まされていました。DLL から Vista スタイルをロードするために見た提案を試したくはありませんでしたが、この記事はまさに私が探していたものを提供してくれました。vista の外観 - 新しいクラスはありません。さらに、タイマーにガラス状のハイライトがあります。記事に写真はありませんが、Vista の ProgressBar にそっくりです。

于 2008-09-17T16:26:44.947 に答える