3

这可能是一个愚蠢的问题(我真的是 WPF 的新手),但是在覆盖 Visual Studio 的 Xaml 编辑器中的控件外观时,是否有一种简单的方法可以自动发现可用的模板部分(PART_*)?

我知道我可以使用 Reflector 之类的工具或查看文档。我在这里寻找的是效率。当然,在某处必须有一个上下文的、类似智能感知的助手,当我键入或单击编辑器上下文菜单中的按钮时,它会显示可用的 TemplatePart 详细信息?我不可能是唯一一个觉得这很有用的人吗?!

4

1 回答 1

5

您可以F12在 Visual Studio(在代码中,而不是在 XAML 编辑器中)点击类型定义——您应该在类的顶部看到模板部分的列表。AFAIK 这是你可以在 Visual Studio 中做的最好的事情(Blend 可能有更好的东西,我不确定)。

例如,这里是带有 TemplateParts 的 DataGrid 定义:

// Summary:
//     Displays data in a customizable grid.
[StyleTypedProperty(Property = "CellStyle", StyleTargetType = typeof(DataGridCell))]
[StyleTypedProperty(Property = "ColumnHeaderStyle", StyleTargetType = typeof(DataGridColumnHeader))]
[StyleTypedProperty(Property = "DragIndicatorStyle", StyleTargetType = typeof(ContentControl))]
[StyleTypedProperty(Property = "DropLocationIndicatorStyle", StyleTargetType = typeof(ContentControl))]
[StyleTypedProperty(Property = "RowHeaderStyle", StyleTargetType = typeof(DataGridRowHeader))]
[StyleTypedProperty(Property = "RowStyle", StyleTargetType = typeof(DataGridRow))]
[TemplatePart(Name = "ColumnHeadersPresenter", Type = typeof(DataGridColumnHeadersPresenter))]
[TemplatePart(Name = "FrozenColumnScrollBarSpacer", Type = typeof(FrameworkElement))]
[TemplatePart(Name = "HorizontalScrollbar", Type = typeof(ScrollBar))]
[TemplatePart(Name = "RowsPresenter", Type = typeof(DataGridRowsPresenter))]
[TemplatePart(Name = "ValidationSummary", Type = typeof(ValidationSummary))]
[TemplatePart(Name = "VerticalScrollbar", Type = typeof(ScrollBar))]
[TemplateVisualState(Name = "Disabled", GroupName = "CommonStates")]
[TemplateVisualState(Name = "Invalid", GroupName = "ValidationStates")]
[TemplateVisualState(Name = "Normal", GroupName = "CommonStates")]
[TemplateVisualState(Name = "Valid", GroupName = "ValidationStates")]
public class DataGrid : Control
于 2013-10-17T22:05:27.767 回答