-->

WPF DataGrid Control Template

2020-07-10 05:28发布

问题:

I am trying to customize the WPF 4.0 DataGrid and need a listing of its control template (also the control template for the nested DataGridColumnHeadersPresenter - PART_ColumnHeadersPresenter). I found this link with provides many control templates, but DataGrid is missing from the list! Is there any place where the control template for the latest WPF 4.0 DataGrid is published. I tried to get it using the following code, but it does not give me nested templates:

// Create an XmlWriter
StringBuilder sb = new StringBuilder();
XmlWriterSettings xmlSettings = new XmlWriterSettings
    { Indent = true, IndentChars = "    ", NewLineOnAttributes = true };
XmlWriter writer = XmlWriter.Create(sb, xmlSettings);

// Write the control template
ControlTemplate template = controlToExtract.Template;
XamlWriter.Save(template, writer);

// Write results to display
controlTemplate.AppendText(sb.ToString());

回答1:

There is a link to download the Default WPF Themes from Control Styles and Templates on MSDN. You can also use the Reflector BamlViewer add-in to read the themes directly from the assemblies.