Me gustaría modificar la plantilla para el Microsoft WPF DataGrid (versión 4.0) pero no estoy seguro de cómo se ve la plantilla existente. ¿Alguien sabe qué es o dónde podría encontrarlo?¿Dónde puedo encontrar las plantillas XAML para un WGD DataGrid?
Respuesta
recomendaría entrar en Blend (si lo tiene) y la extracción de la plantilla. De lo contrario, puede obtener el XAML utilizando XAMLWriter.
Este unfortunately named page (no creo que esto sea realmente "Cosas para niños", ¿verdad?) Tiene un ejemplo de hacer ambas cosas.
En caso de que la página no suceda a desaparecer (2009 es bastante lejos en el espejo retrovisor):
// Get the template from the control
ControlTemplate template = ctl.Template;
// We want our xaml of be properly indented, ohterwise
// we would not be able to indent them.
XmlWriterSettings xmlSettings = new XmlWriterSettings();
xmlSettings.Indent = true;
// Make the string builder
StringBuilder sb = new StringBuilder();
XmlWriter writer = XmlWriter.Create(sb, xmlSettings);
XamlWriter.Save(template, writer);
// Now the sb.ToString() should give us the template
Todo el crédito a Shafqat Ahmed.
Aquí es cómo hacerlo mediante programación:
http://www.interact-sw.co.uk/iangblog/2007/02/14/wpfdefaulttemplate
hay dos grandes listas de plantillas/estilos en MSDN A menudo uso:
http://msdn.microsoft.com/fr-fr/library/aa970773.aspx
http://msdn.microsoft.com/en-us/library/aa970773.aspx
por desgracia, no son como lo anuncian como debe ser ...
por lo que a usted respecta, recomendaría esto (lo obtuve del segundo enlace): http://msdn.microsoft.com/en-us/library/ff506248.aspx
me ayudó mucho recientemente!
Esto es lo que salí de la mezcla 4:
<ControlTemplate TargetType="{x:Type DataGrid}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True">
<ScrollViewer x:Name="DG_ScrollViewer" Focusable="false">
<ScrollViewer.Template>
<ControlTemplate TargetType="{x:Type ScrollViewer}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Button Command="{x:Static DataGrid.SelectAllCommand}" Focusable="false" Style="{DynamicResource {ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, TypeInTargetAssembly={x:Type DataGrid}}}" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.All}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" Width="{Binding CellsPanelHorizontalOffset, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
<DataGridColumnHeadersPresenter x:Name="PART_ColumnHeadersPresenter" Grid.Column="1" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Column}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
<ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" Grid.ColumnSpan="2" Grid.Row="1"/>
<ScrollBar x:Name="PART_VerticalScrollBar" Grid.Column="2" Maximum="{TemplateBinding ScrollableHeight}" Orientation="Vertical" Grid.Row="1" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}"/>
<Grid Grid.Column="1" Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding NonFrozenColumnsViewportHorizontalOffset, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ScrollBar x:Name="PART_HorizontalScrollBar" Grid.Column="1" Maximum="{TemplateBinding ScrollableWidth}" Orientation="Horizontal" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}"/>
</Grid>
</Grid>
</ControlTemplate>
</ScrollViewer.Template>
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</ScrollViewer>
</Border>
</ControlTemplate>
- 1. ¿Cómo puedo paginar un WGD DataGrid?
- 2. Cómo actualizar un WGD DataGrid?
- 3. Verificar filas visibles en un WGD DataGrid
- 4. Agregar un botón a WGD DataGrid
- 5. ¿Dónde encontrar buenos recursos para aprender XAML?
- 6. ¿Cómo puedo vincular un WGD DataGrid a un número variable de columnas?
- 7. ¿Cómo genero dinámicamente columnas en un WGD DataGrid?
- 8. Agrupación con arrastrar y soltar en WGD DataGrid
- 9. ¿Dónde puedo encontrar GACUtil?
- 10. ¿Dónde puedo encontrar "j_security_check"?
- 11. ¿Dónde puedo encontrar fuentes .NET para descargar?
- 12. ¿Dónde puedo encontrar imágenes prediseñadas de WPF?
- 13. ¿Dónde puedo encontrar documentación para BlueZ?
- 14. ¿Dónde encontrar todas las opciones para module.config.php?
- 15. Cómo agregar un menú contextual con el botón derecho al Encabezado de columna para un WGD 4 DataGrid?
- 16. ¿Dónde puedo encontrar TableDiff.exe?
- 17. MVC 3: ¿Dónde puedo encontrar plantillas predeterminadas para DisplayForModel y EditorForModel?
- 18. ¿Dónde puedo encontrar Microsoft.Build.Utilities.v3.5
- 19. ¿Dónde puedo encontrar un buen tutorial para principiantes para ColdFusion?
- 20. ¿Dónde puedo encontrar WSDL.exe?
- 21. ¿Cómo obtengo un WGD DataGrid para guardar los cambios de nuevo en la base de datos?
- 22. Dónde puedo encontrar temas personalizados para Google Sites
- 23. ¿Dónde puedo encontrar documentación para RDLC xml?
- 24. ¿Dónde puedo encontrar complementos para Resharper?
- 25. ¿Dónde puedo encontrar la aplicación para IVCWizCtlUI
- 26. ¿Dónde puedo encontrar documentación para NHibernate ISession.Persist()?
- 27. ¿Dónde puedo encontrar bcp para impulsar?
- 28. ¿Dónde puedo encontrar un parche completo para Haskell?
- 29. ¿Dónde le parecen útiles las plantillas?
- 30. ¿Dónde puedo encontrar plantillas/diagramas de visio decentes para la arquitectura del software?
http://neilmosafi.blogspot.com/2007/04/new-tool-for-viewing-wpf-default.html – Heinzi
que tienen Usé eso para otros controles pero no tiene el control DataGrid. Buscaré una versión más nueva a través de – Rachel
No, no hay una versión actualizada para ShowMeTheTemplate – Rachel