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
中设置。
为什么不将 TaskbarItemInfo
的 ProgressState
绑定(bind)到您想在 DataTrigger
中使用的属性,然后使用 ValueConverter
将其转换为相关的 TaskbarItemProgressState
。
<Window.TaskbarItemInfo>
<TaskbarItemInfo ProgressState="{Binding YourProperty, Mode=OneWay, Converter={StaticResource ProgressStateConverter}}" />
</Window.TaskbarItemInfo>
然后一个简单的转换器可以返回任何适用于您的触发器属性的
TaskbarItemProgressState
。