通过WPF样式或触发器设置TaskbarItemInfo

时间:2012-02-23 16:56:08

标签: wpf windows-7 dependency-properties

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

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

例如:

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

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

好像附加属性没有通过样式设置。我通过样式设置附加属性的语法是不正确的,还是我错过了其他内容?

1 个答案:

答案 0 :(得分:2)

TaskbarItemInfo不会继承FrameworkElement,因此您无法在Style中设置DataTrigger属性。

为什么不将TaskbarItemInfo的{​​{1}}绑定到您想要在ProgressState中使用的属性,然后使用DataTrigger将其转换为相关的ValueConverter

TaskbarItemProgressState

然后,一个简单的转换器可以返回适用于您的触发器属性的<Window.TaskbarItemInfo> <TaskbarItemInfo ProgressState="{Binding YourProperty, Mode=OneWay, Converter={StaticResource ProgressStateConverter}}" /> </Window.TaskbarItemInfo>