WPF 4 包含一个“TaskbarItemInfo”Freezable 类,该类将附加属性添加到允许更改各种 Windows 7 任务栏项目的窗口。

特别是,我试图在窗口的 tasbar 图标上设置进度信息。我想使用 DataTrigger 来执行此操作,但它似乎不起作用。我尝试使用简单的样式 setter ,但这也不起作用 - 只有直接属性分配或直接属性绑定(bind)才有效。

例如:

<Window.Style>
    <Style>
        <Setter Property="TaskbarItemInfo.ProgressState" Value="Indeterminate" />
    </Style>
</Window.Style>

<Window.TaskbarItemInfo>
    <TaskbarItemInfo />
</Window.TaskbarItemInfo>

似乎没有通过样式设置附加属性。我通过样式设置附加属性的语法是否不正确,还是我错过了其他东西?

最佳答案

TaskbarItemInfo 不是从 FrameworkElement 继承的,因此没有 Style 属性供您在 DataTrigger 中设置。

为什么不将 TaskbarItemInfoProgressState 绑定(bind)到您想在 DataTrigger 中使用的属性,然后使用 ValueConverter 将其转换为相关的 TaskbarItemProgressState

<Window.TaskbarItemInfo>
    <TaskbarItemInfo ProgressState="{Binding YourProperty, Mode=OneWay, Converter={StaticResource ProgressStateConverter}}" />
</Window.TaskbarItemInfo>

然后一个简单的转换器可以返回任何适用于您的触发器属性的 TaskbarItemProgressState

10-08 09:02