3

在 Expression Blend 4 中,简单样式使用以下 XML 命名空间:

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

它经常使用来自这个命名空间的一个名为IsControlPart的属性,它是一个布尔值。我进行了广泛的搜索,但找不到有关此属性的任何实际文档。

4

1 回答 1

2

我想我想通了。

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

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

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

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

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

于 2012-07-25T04:00:03.140 回答