在 Expression Blend 4 中,简单样式使用以下 XML 命名空间:
http://schemas.microsoft.com/expression/interactivedesigner/2006
它经常使用来自这个命名空间的一个名为IsControlPart的属性,它是一个布尔值。我进行了广泛的搜索,但找不到有关此属性的任何实际文档。
在 Expression Blend 4 中,简单样式使用以下 XML 命名空间:
http://schemas.microsoft.com/expression/interactivedesigner/2006
它经常使用来自这个命名空间的一个名为IsControlPart的属性,它是一个布尔值。我进行了广泛的搜索,但找不到有关此属性的任何实际文档。
我想我想通了。
当 WPF 为其控件创建默认模板时,它会使用前缀“PART”来命名一些元素。例如,对于 Slider 控件,它有两个部分,PART_Track和PART_SelectionRange。这本身与 Expression Blend 无关。
这些部件是控件基本功能所必需的。大多数简单的控件,如 Button,没有任何部件,因此它们可以完全自定义而没有任何限制。
更复杂的控件依赖于存在的部分,以便代码隐藏正常工作。它不关心控件的外观,或者它们在可视化树中的位置,只要它们存在并且类型正确。
在 Expression Blend 中,有一个“部件”窗口,默认情况下,它是“项目”和“资产”选项卡旁边的一个选项卡。当您为控件编辑模板时,如果有为该控件定义的任何部件,它会在此部件窗口中列出它们。如果该部分存在于当前模板中,它会显示一个复选标记,如果不存在,您可以双击它,Blend 将为您创建元素。
我仍然不确定 d:IsControlPart 属性是如何工作的。我尝试制作自己的自定义控件并使用 IsControlPart 标签创建元素,然后为该控件创建模板以查看它是否会列出该部分。它没有。所以这仍然不是 100% 的回答。