作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这可能是一个愚蠢的问题(我真的是 WPF 的新手),但是在 Visual Studio 的 Xaml 编辑器中重写控件外观时,是否有一种简单的方法可以自动发现可用的模板部分 (PART_*)?
我知道我可以使用 Reflector 等工具或查看文档。我在这里寻找的是效率。当然,某处必须有一个上下文相关的、类似于智能感知的帮助程序,它可以在我键入或单击编辑器上下文菜单中的按钮时显示可用的 TemplatePart 详细信息?我不可能是唯一一个觉得有用的人吧?!
最佳答案
您可以在 Visual Studio(在代码中,而不是在 XAML 编辑器中)中按 F12
转到类型定义——您应该会在类的顶部看到模板部分列表。据我所知,这是您在 Visual Studio 中可以做的最好的事情(Blend 可能有更好的东西,我不确定)。
例如,这里是带有 TemplatePart 的 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
关于wpf - TemplatePart发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19438123/
我想知道是否有一种方法可以从 c# 中访问控件的模板部分以修改部分(例如隐藏等)。是否可以使用纯 C# 获取对部分的引用?我不想触摸控件模板。谢谢j. 最佳答案 这是可能的,但它非常讨厌。 在模板上有
我是一名优秀的程序员,十分优秀!