Ответ 1
Я не нашел проектов с работающим Silverlight-style DataGrid
, поэтому я создал его на Codeplex:
http://datagridthemesfromsl.codeplex.com
Не все темы, но там, по крайней мере, несколько.
Это не секрет: стиль Silverlight DataGrid
по умолчанию красив, а WPF плохой.
Вместо того, чтобы изобретать колесо, позвольте мне спросить сообщество, если кто-то скопировал стили SL для использования в WPF.
Пожалуйста, взгляните на скриншоты и судите сами, как команды Silverlight и WPF инвестируют в свои продукты.
Silverlight по умолчанию - DataGrid:
WPF по умолчанию в DataGrid (обновляется после ответа Saied K):
Я не нашел проектов с работающим Silverlight-style DataGrid
, поэтому я создал его на Codeplex:
http://datagridthemesfromsl.codeplex.com
Не все темы, но там, по крайней мере, несколько.
Погруженный глубоко в MSDN, я нашел это.
В нижней части статьи вы увидите эту фразу:
Например, взгляните на следующую иллюстрацию, которая показывает часть образца Styling with ControlTemplates
Если вы нажмете "Styling with ControlTemplates Sample", он перенесет ссылку скачать. После загрузки вы можете скомпилировать проект и включать в себя все виды стилей, в том числе неуловимый стиль datagrid! Вы можете взять файл MS DataGrid.xaml и изменить его для своих нужд.
Кажется, что нет готового стиля.
Я разместил предложение на сайте предложений Microsoft, проголосовав здесь и здесь!!!
Любой, кто имитировал стиль по умолчанию Silverlight DataGrid для WPF, должен отправить свой ответ, и я помету его как ответ и даю ему голосование!
Спасибо большое!
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. Предполагая, что с момента, когда Shimmy отправил этот вопрос, что этот пример не поступал с DataGrid в .NET 4.0, но я мог ошибаться и, возможно, это был один из бета-версий или RC. В любом случае, это один пример обходного пути для тех, кто использует 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>