d:IsControlPart属性在Expression Blend中有什么作用?

时间:2012-07-25 01:11:35

标签: wpf expression-blend

在Expression Blend 4中,Simple Styles使用以下XML命名空间:

http://schemas.microsoft.com/expression/interactivedesigner/2006

它经常使用此命名空间中名为 IsControlPart 的属性,它是一个布尔值。我已广泛搜索,无法找到有关此属性的任何实际文档。

1 个答案:

答案 0 :(得分:2)

我想我已经明白了。

当WPF为其控件创建默认模板时,它会使用前缀“PART”命名一些元素。例如,使用Slider控件时,它有两个部分, PART_Track PART_SelectionRange 。这本身与Expression Blend无关。

控件基本功能所必需的这些部件。大多数简单的控件,如Button,没有任何部件,因此可以完全自定义,而不受任何限制。

更复杂的控件依赖于存在的部件,以使代码隐藏正常工作。它不关心控件的外观,也不关心它们在可视化树中的位置,只要它们存在并且属于正确的类型。

在Expression Blend中,有一个“部件”窗口,默认情况下是“项目”和“资产”选项卡旁边的选项卡。在为控件编辑模板时,如果为该控件定义了任何部件,则会在此“部件”窗口中列出它们。如果该部分存在于当前模板中,则显示复选标记,如果不存在,则可以双击它,Blend将为您创建元素。

我仍然不确定d:IsControlPart属性是如何工作的。我尝试创建自己的自定义Control并使用IsControlPart标记创建元素,然后为该控件创建一个模板以查看它是否会列出该部件。它没有。所以这仍然没有100%回答。