Это не секрет: Silverlight DataGrid
стиль по умолчанию красив, в то время как WPF's плох.
Вместо того, чтобы изобрести велосипед позволяют мне спросить сообщество, если кто-либо скопировал стили SL для использования в WPF.
Смотрите на снимки экрана и судью для себя, как Silverlight и команды WPF вкладывают капитал в их продукты.
Стиль по умолчанию Silverlight DataGrid:
Стиль по умолчанию WPF DataGrid (обновленный после ответа Saied K):
Похоже, не существует стиля "из коробки".
Я разместил предложение на сайте предложений Microsoft, пожалуйста, проголосуйте здесь и здесь !!!
Все, кто подражает WPF в стиле Silverlight DataGrid по умолчанию, пожалуйста, напишите его ответ, и я отмечу его как ответ и дам ему голос!
Большое спасибо!
WPF корабли с рядом стилей, таких как Luna, Aero, Classic и др. Эти темы применяются в зависимости от настроек вашей системы. Снимок экрана из предыдущего сообщения выглядит как тема WPF Classic, но я полагаю, что вы ищете более привлекательную тему.
Если вы используете тему классической системы в вашей ОС, но хотите, чтобы ваше WPF приложение использовало, например, тему Aero, вы можете добавить объединенный словарь в ваше приложение и принудительно применить тему Aero, как показано на рисунке ниже. Пожалуйста, обратите внимание, что вам может понадобиться изменить двоичную версию и открытый ключ соответственно.
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="/PresentationFramework.Aero;V4.0.0.0;31bf3856ad364e35;component\themes/aero.normalcolor.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Надеюсь, это поможет, Сайед К.
Я также проголосовал за обе ошибки сайта подключения, это действительно должно следовать системной теме по умолчанию!
Однако в то же время я нашел полезный пост Malav Dhalgara, который включает в себя следующий пример, который можно использовать для включения тем Aero для элементов управления в WPFToolkit. Предполагая, что с даты, когда Шимми опубликовал этот вопрос, этот пример не был взят из DataGrid в .NET 4.0, но я мог ошибаться, и, возможно, это было из одной из бета-версий или РК. В любом случае, вот один из примеров обхода для тех, кто использует WPFToolkit.
<ResourceDictionary >
<ResourceDictionary.MergedDictionaries>
<!--Enable Aero Theme-->
<ResourceDictionary source="/PresentationFramework.Aero,Version=3.0.0.0,Culture=neutral,
PublicKeyToken=31bf3856ad364e35,ProcessorArchitecture=MSIL;
component/themes/aero.normalcolor.xaml" />
<ResourceDictionary xmlns:tk="clr-namespace:Microsoft.Windows.Controls;assembly=WpfToolkit"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<!--Enable aero theme on toolkit components-->
<sys:String x:Key="{ComponentResourceKey
TypeInTargetAssembly={x:Type tk:Calendar},ResourceId=Theme}">
Aero.NormalColor</sys:String>
<sys:String x:Key="{ComponentResourceKey
TypeInTargetAssembly={x:Type tk:DataGrid},ResourceId=Theme}">
Aero.NormalColor</sys:String>
<sys:String x:Key="{ComponentResourceKey
TypeInTargetAssembly={x:Type tk:DatePicker},ResourceId=Theme}">
Aero.NormalColor</sys:String>
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>