3

これはおそらく愚かな質問です (私は本当に WPF を初めて使用します)、Visual Studio の Xaml エディターでコントロールの外観をオーバーライドするときに、使用可能なテンプレート パーツ (PART_*) を自動的に検出する簡単な方法はありますか?

Reflector などのツールを使用したり、ドキュメントを参照したりできることはわかっています。ここで私が求めているのは効率です。確かに、エディタのコンテキスト メニューでボタンを入力またはクリックすると、使用可能な TemplatePart の詳細が表示される、コンテキストに応じたインテリセンスのようなヘルパーがどこかになければなりませんか? それが便利だと思うのは私だけではないでしょうか?!

4

1 に答える 1

5

Visual Studio で (XAML エディターではなくコードで)ヒットF12すると、型定義に移動できます。クラスの上部にテンプレート パーツのリストが表示されます。私の知る限り、これは 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 に答える