Стиль WPF DataGrid-Silverlight DataGrid?
это не секрет: Silverlight DataGrid
стиль по умолчанию красив, в то время как WPF беден.
вместо того, чтобы изобретать колесо, позвольте мне спросить сообщество, скопировал ли кто-нибудь стили SL для использования в WPF.
пожалуйста, взгляните на скриншоты и судите сами, как команды Silverlight и WPF инвестируют в свои продукты.
параметры-стиль в Silverlight DataGrid с:
WPF DataGrid в стиле по умолчанию (обновлено после ответа Saied K):
5 ответов
Я не нашел никаких проектов с рабочим Silverlight-style DataGrid
, поэтому я создал один на Codeplex:
http://datagridthemesfromsl.codeplex.com
не имеет всех тем, но там, по крайней мере, несколько.
похороненный глубоко внутри MSDN, я нашел этой.
в нижней части статьи, вы увидите такую фразу:
например, взгляните на следующую иллюстрацию, которая показывает часть стиля с образцом ControlTemplates
Если вы нажмете "стиль с образцом ControlTemplates", он приведет вас к ссылка для скачивания. После загрузки, вы можете скомпилировать проект и включает все виды стилей, включая неуловимый стиль datagrid! Вы можете взять МС в элементе управления DataGrid.xaml файл и изменить его для ваших нужд.
WPF поставляется с несколькими стилями, такими как Luna, Aero, Classic и т. д. Эти темы применяются на основе настроек системы. Скриншот из предыдущего сообщения выглядит как классическая тема WPF, но я предполагаю, что вы ищете более привлекательную тему.
Если вы используете классическую системную тему в своей ОС, но хотите, чтобы ваше приложение 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>
надеюсь, что это поможет, Саид К.
Я проголосовал за обе ошибки сайта connect тоже, это действительно должно следовать системной теме правильно по умолчанию!
однако в то же время я нашел полезный пост по Malav Dhalgara который включает в себя следующий пример, который можно использовать для включения темы Aero для элементов управления в WPFToolkit. Предполагая, что с даты, когда Shimmy опубликовал этот вопрос, этот пример не исходил из DataGrid в .NET 4.0, но я мог ошибаться, и, возможно, это был один из бета или RCs. Во всяком случае, вот один пример обходного пути для тех, кто использует 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>