Tôi muốn sửa đổi mẫu cho Microsoft WPF DataGrid (phiên bản 4.0) nhưng tôi không chắc chắn mẫu hiện có trông như thế nào. Có ai biết nó là gì hay tôi có thể tìm thấy nó ở đâu?Tôi có thể tìm các mẫu XAML cho một DataGrid WPF ở đâu?
Trả lời
tôi sẽ khuyên bạn nên đi vào Blend (nếu bạn có nó) và chiết xuất Mẫu. Nếu không, bạn có thể lấy XAML bằng XAMLWriter.
Đây là một ví dụ về việc thực hiện cả hai điều này.
Trong trường hợp trang đó xảy ra ra đi (năm 2009 là khá xa trong gương chiếu hậu):
// 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
Tất cả tín dụng cho Shafqat Ahmed.
Dưới đây là làm thế nào để làm điều đó cách lập trình:
http://www.interact-sw.co.uk/iangblog/2007/02/14/wpfdefaulttemplate
có hai danh sách lớn các mẫu/phong cách trên MSDN Tôi thường sử dụng:
http://msdn.microsoft.com/fr-fr/library/aa970773.aspx
http://msdn.microsoft.com/en-us/library/aa970773.aspx
buồn thay, họ không phải là quảng cáo như họ nên được ...
cho đến khi bạn quan tâm, tôi khuyên bạn nên sử dụng (đã nhận từ liên kết thứ hai): http://msdn.microsoft.com/en-us/library/ff506248.aspx
đã giúp tôi rất nhiều trong thời gian gần đây!
Dưới đây là những gì tôi bước ra khỏi Blend 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. Tôi có thể tìm mẫu ASP.NET MVC tốt ở đâu?
- 2. Tôi có thể tìm mã mẫu iPad ở đâu
- 3. MVC 3: Tôi có thể tìm các mẫu mặc định cho DisplayForModel và EditorForModel ở đâu?
- 4. Tôi có thể tìm GACUtil ở đâu?
- 5. Tôi có thể lấy mẫu cho MediaWiki ở đâu?
- 6. Tôi có thể tìm nguồn cho System.Web.Optimization ở đâu?
- 7. Tôi có thể tìm appcmd.exe cho IIS Express ở đâu?
- 8. Tôi có thể tìm hướng dẫn cho Clang ở đâu?
- 9. Tôi có thể tìm tài liệu cho BlueZ ở đâu?
- 10. Tôi có thể tìm các ví dụ về biểu mẫu web yếu tố ở đâu?
- 11. Tôi có thể tìm thông tin về các mẫu triển khai NOSQL ở đâu?
- 12. Metro XAML - LayoutTransform ở đâu?
- 13. ScrollIntoView cho WPF DataGrid (MVVM)
- 14. Tôi có thể tìm gói javax.media.opengl ở đâu?
- 15. Tôi có thể tìm thư viện .NET ở đâu tốt?
- 16. Tôi có thể tìm mã nguồn Flex ở đâu?
- 17. Tôi có thể tìm thư viện DNS C++ ở đâu?
- 18. Tôi có thể tìm Hộp văn bản đeo mặt nạ miễn phí trong WPF ở đâu?
- 19. Tôi có thể tìm hiểu về chuỗi JNDI ở đâu?
- 20. Tôi có thể tìm tài liệu ASP MVC ở đâu?
- 21. Tôi có thể tìm mã nguồn JDK 1.5 ở đâu?
- 22. Tôi có thể tìm thấy tệp System.Linq.Dynamic ở đâu?
- 23. Tôi có thể tìm đầu đọc Lisp ở đâu?
- 24. Tôi có thể tìm các mẫu/sơ đồ visio phong nha cho kiến trúc phần mềm ở đâu?
- 25. Tôi có thể tìm các phóng viên HTML mở rộng cho Đơn giản ở đâu?
- 26. Tôi có thể tìm lớp Base64Encoder ở đâu?
- 27. Tôi có thể tìm tệp my.cnf hoặc my.ini ở đâu?
- 28. Tôi có thể tìm mã nguồn C++ ở đâu?
- 29. Tôi có thể tìm bcp để tăng ở đâu?
- 30. Tôi có thể tìm thấy triển khai XMLHttpRequest ở đâu?
http://neilmosafi.blogspot.com/2007/04/new-tool-for-viewing-wpf-default.html – Heinzi
Tôi có được sử dụng cho các điều khiển khác nhưng nó không có điều khiển DataGrid. Tôi sẽ kiểm tra phiên bản mới hơn mặc dù – Rachel
Không, không có phiên bản cập nhật cho ShowMeTheTemplate – Rachel