wpf - d :IsControlPart attribute do in Expression Blend? 是什么

标签 wpf expression-blend

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

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

它经常使用此命名空间中名为 IsControlPart 的属性,这是一个 bool 值。我在谷歌上进行了大量搜索,但找不到关于此属性的任何实际文档。

最佳答案

我想我明白了。

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

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

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

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

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

关于wpf - d :IsControlPart attribute do in Expression Blend? 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11641386/

相关文章:

wpf - 来自后台线程的模态消息框

c# - 我如何在 XAML WPF 窗口中拥有动态元素

silverlight-3.0 - SketchFlow 原型(prototype)字体不显示

c# - 如何通过在页面上显示半透明控件来禁用Windows Phone上的所有控件?

wpf - 避免小窗口的 MVVM/数据绑定(bind)?

c# - 使用代码隐藏堆叠列系列在 WPF 图表上旋转独立轴标签

c# - 在 WPF 中绘制相对于其容器的对角线 Text/TextBlock/Label/Control

WPF Stretch ListBox Height 100% of Grid.Row?

WPF 浏览器控件与 winforms

xaml - 如何在 XAML 中制作圆角三角形