WPF数据表格样式-银光数据表格?

20

毫不秘密:Silverlight的 DataGrid 默认样式很漂亮,而WPF的则较为简陋。

与其重复造轮子,让我向社区询问是否有人复制了SL样式以在WPF中使用。

请查看截图并自行评判Silverlight和WPF团队在其产品上的投资。

Silverlight默认样式DataGrid:

Silverlight DataGrid

WPF默认样式DataGrid(在Saied K回答后更新):
WPF DataGrid

5个回答

7

我没有找到任何带有可工作的Silverlight风格 DataGrid 的项目,因此我在Codeplex上创建了一个:

http://datagridthemesfromsl.codeplex.com

虽然不是所有主题都有,但至少有一些。


2
+1 非常感谢!您能否在您的 CodePlex 页面上详细说明如何将其与现有数据网格一起使用? - gideon
1
@gideon - 这个链接现在可用 - SliverNinja - MSFT

7
我在MSDN深处发现了这个链接:http://msdn.microsoft.com/en-us/library/ms745683.aspx#styling_themes
在文章底部,你会看到这个短语:
“例如,请查看下面的插图,它显示了一部分控件模板样例。”
如果你点击“控件模板样例”,它会带你到一个下载链接。下载后,你可以编译这个项目,并包含各种样式,包括难以捉摸的数据网格样式!你可以使用微软的DataGrid.xaml文件并根据自己的需要进行修改。

+1 正在寻找包含 WPF 所有基本控件模板的 WPF SimpleStyles 项目。感谢您的帮助! - SliverNinja - MSFT
@Matt,你测试过这个主题了吗?它是否也影响到了DataGrid控件? - Shimmy Weitzhandler
2
请在这里(http://goo.gl/QDYxY)和这里(http://goo.gl/S8ekJ)投票,并留下粗鲁的评论! - Shimmy Weitzhandler
@Shimmy,请问这个示例应用程序中是否有不同的ResourceDictionaries?我只找到了Shared.xaml,而且与MSDN上显示的银色模板相比,皮肤是蓝色的,而且非常难看。这个银色模板是否也可以下载? - Rachel

6
似乎没有现成的样式。
我在Microsoft建议网站上发布了一个建议,请在这里这里投票!!!
任何已经将Silverlight DataGrid默认样式模仿为WPF的人都应该发布他的答案,我会将其标记为答案并给予投票!
非常感谢!

我看到了,谢谢。希望那边有些懒惰的员工能够看到它。 - Shimmy Weitzhandler
1
我打开了一个新的连接,我认为一旦他们关闭了连接,就不会再收到有关进一步评论的警报,请查看 https://connect.microsoft.com/WPF/feedback/ViewFeedback.aspx?FeedbackID=525883。 - Shimmy Weitzhandler
1
顺便说一句,有一个小技巧可以让界面看起来好看一些,就是使用 GridLinesVisibility="None" 关闭网格线。虽然它仍然不如 Silverlight 版本那么漂亮,但那些黑色的网格线实在太丑了。 - devuxer
我给了它我剩下的唯二两票。(我讨厌总共只有10票...) - devuxer

2
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>

希望这能帮到您, Saied K.

1
我更新了我的照片,在新的照片中,你可以看到WPF DataGrid在Windows 7 Aero主题环境下的默认样式,你可以清楚地看到它在窗口框架上。恕我直言,您真的没有理解我的问题。 - Shimmy Weitzhandler

0

我也投票支持连接站点的两个错误,这确实应该默认按照系统主题进行处理!

但在此期间,我在 Malav Dhalgara 的有用帖子中找到了以下示例,可用于启用 WPFToolkit 中控件的 Aero 主题。假设从日期推断出,Shimmy 发布了这个问题,这个示例并不是来自 .NET 4.0 中的 DataGrid,但我可能错了,也许它是来自其中一个 Beta 或 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>

当然,我们早就升级到了4.0版本,但.NET 4在WPF样式方面并没有做出任何改进。 - Shimmy Weitzhandler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接