Вопрос

Я использую элемент управления ProgressBar в приложении WPF, и я получаю этот старый прогресс Windows 3.1Блоки вещь.В VB6 было свойство показывать гладкий Панель прогресса.Есть ли такая вещь для WPF?

Это было полезно?

Решение

Это Статья KB, кажется, объясняет, что вы ищете...там же есть ссылка на VB-версию статьи.

Другие советы

Я не смог найти прямого решения для этого.Но я нашел кое-что еще лучше.В WPF вы можете использовать темы Windows.Я использую Windows XP и использую тему Vista-Aero в своем приложении WPF, благодаря чему все элементы управления выглядят как 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 = истина.

Если вы действительно хотите перейти от 0% к 100%, вам нужно либо анимировать значение, как показано в этом примере в msdn: http://msdn.microsoft.com/en-us/library/system.windows.controls.progressbar.aspx или установите значение явно либо в коде (скорее всего, от фонового рабочего), либо через привязку к изменяющемуся значению.

Тем не менее, панель выполнения WPF всегда должна быть "гладкой", существует вероятность того, что пользовательский интерфейс по умолчанию будет использовать более простую версию через подключение к удаленному рабочему столу.

Недавно я был раздражен появлением моих индикаторов выполнения в XP после разработки в Vista.Я не хотел пробовать предложения, которые я видел для загрузки стилей Vista из dll, но эта статья дал мне именно то, что я искал.внешний вид vista - новых классов нет.Кроме того, он имеет стеклянную подсветку по таймеру.В статье нет картинок, но она выглядит точно так же, как панель прогресса Vista.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top