【问题标题】:Using the TaskBarItemInfo in WPF for the progress bar in Win 7 taskbar将 WPF 中的 TaskBarItemInfo 用于 Win 7 任务栏中的进度条
【发布时间】:2011-08-09 20:47:58
【问题描述】:

在通过 ProgressValue 进行时,是否有人有通过可用枚举状态更新 ProgressState 的 WPF 示例?

我有以下代码将我的进度值绑定为从 0 运行到 1:

<Window.TaskbarItemInfo>
    <TaskbarItemInfo Description="An app with a taskbar info description" 
                     ProgressValue="{Binding Count}" ProgressState="Normal"/>
</Window.TaskbarItemInfo>

但是,从 NoneNormalNone 或其他流程的好方法是什么:None-Normal-暂停-正常-无。 上面的代码显示左侧的进度条为 0%,然后在 100% (1) 处结束。 我想我可以将它与转换器绑定到我的 ViewModel 的另一个属性,但想看看是否有人有任何更巧妙的解决方案。

谢谢!

【问题讨论】:

  • 明确地说,我的视图模型在从 0 到 1 的范围内递增(递增 0.1)。但是在 sn-p 中将 XAML ProgressState 设置为 Normal 太静态了。需要按照描述的状态循环。
  • 一件小事:任务栏进度似乎取决于主题,而不仅仅是取决于 Windows 版本,这意味着在使用经典主题(无 aero)的 Windows 7 下,您将永远看不到它;/但是 Windows 7 问题应该很快就“解决”了:D

标签: wpf windows-7 progress-bar taskbar


【解决方案1】:

与绑定 ProgressValue 的方式相同,您也可以绑定 ProgressState。 ProgressState 的类型是一个名为 TaskbarItemProgressState 的枚举,其中包括您已经提到的状态。

public enum TaskbarItemProgressState
{
    // Summary:
    //     No progress indicator is displayed in the taskbar button.
    None = 0,
    //
    // Summary:
    //     A pulsing green indicator is displayed in the taskbar button.
    Indeterminate = 1,
    //
    // Summary:
    //     A green progress indicator is displayed in the taskbar button.
    Normal = 2,
    //
    // Summary:
    //     A red progress indicator is displayed in the taskbar button.
    Error = 3,
    //
    // Summary:
    //     A yellow progress indicator is displayed in the taskbar button.
    Paused = 4,
}

我认为“最巧妙”的方法是您已经提到的方法,无论是使用转换器还是手动

【讨论】:

    【解决方案2】:

    ProgressValue 是双倍的 使用值从 0 到 1

    【讨论】:

    • 我知道 ProgressValue,问题是关于 ProgressState。
    猜你喜欢
    • 1970-01-01
    • 2011-01-11
    • 2010-11-20
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多