这可能是一个愚蠢的问题(我真的是WPF的新手),但是在Visual Studio的Xaml编辑器中覆盖控件外观时,是否有一种简单的方法可以自动发现可用的模板部件(PART_ *)?
我知道我可以使用像Reflector这样的工具或查看文档。我在这里寻找的是效率。当然,在某个地方必须有一个上下文,智能感知的帮助器,当我在编辑器的上下文菜单中键入或单击按钮时,会显示可用的TemplatePart详细信息吗?我不可能是唯一一个发现有用的人吗?!
答案 0 :(得分:4)
您可以在Visual Studio中查找F12
(在代码中,而不是XAML编辑器中)以转到类型定义 - 您应该在类顶部看到模板部件列表。 AFAIK这是你在Visual Studio中可以做的最好的事情(Blend可能有更好的东西,我不确定)。
例如,这是DataGrid定义及其TemplateParts:
// 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