2009-11-15 19 views
21

To nie jest tajemnicą: domyślny styl Silverlight jest DataGrid jest piękny, podczas gdy WPF jest słaba.WPF DataGrid stylu Silverlight DataGrid?

Zamiast odkrywać nowe koło, pozwól, że zapytam społeczność, czy ktoś skopiował style SL do użycia w WPF.

Proszę spojrzeć na zrzuty ekranu i ocenić, jak zespoły Silverlight i WPF inwestują w swoje produkty.

Silverlight domyślny styl DataGrid:

Silverlight DataGrid

WPF domyślny styl DataGrid (zaktualizowane po odebraniu saied K'S):
WPF DataGrid

Odpowiedz

7

Nie znaleziono żadnych projektów o roboczym Silverlight stylu DataGrid, więc stworzyłem jeden na Codeplex:

http://datagridthemesfromsl.codeplex.com

nie ma wszystkich tematów, ale tam przynajmniej kilka tam.

+2

+1 dzięki bardzo! Czy możesz opisać na swojej stronie kodowej, jak z niego korzystać z istniejącą siatką danych? – gideon

+1

@gideon - link jest [teraz dostępny] (http://datagridthemesfromsl.codeplex.com/wikipage?title=How-To%3a%20use%20this%20themes%20library%20with%20your%20DataGrid&version=1). – SliverNinja

6

Wydaje się, że nie jest w formie out-the-box.
Wysłałem sugestię do witryny z sugestiami Microsoftu, głosuj na: here i here !!!

Ktoś, kto naśladował domyślny styl Silverlight DataGrid do WPF powinien opublikować odpowiedź, a ja oznaczy ją jako odpowiedź i oddam mu głos!

Wielkie dzięki!

+0

Głosowałem i dodałem złośliwy komentarz :) – devuxer

+0

Widziałem to, dziękuję, mam nadzieję, że ktoś z leniwych pracowników będzie go widział. – Shimmy

+1

Otworzyłem nowy, myślę, że po zamknięciu połączenia nie są wysyłane żadne alerty o dalszych komentarzach. Zajrzyj na https://connect.microsoft.com/WPF/feedback/ViewFeedback.aspx?FeedbackID=525883. – Shimmy

1

Pliki WPF są dostarczane w różnych stylach, takich jak Luna, Aero, Classic itp. Te motywy są stosowane w zależności od ustawień systemu. Zrzut ekranu z poprzedniego posta wygląda jak motyw WPF Classic, ale domyślam się, że szukasz bardziej interesującego motywu.

Jeśli używasz klasycznego motywu systemowego w systemie operacyjnym, ale chcesz, aby aplikacja WPF używała na przykład motywu Aero, możesz dodać połączony słownik do swojej aplikacji i wymusić motyw Aero, jak pokazano poniżej. Pamiętaj, że może być konieczna odpowiednia zmiana wersji binarnej i klucza publicznego.

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary 
      Source="/PresentationFramework.Aero;V4.0.0.0;31bf3856ad364e35;component\themes/aero.normalcolor.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

nadzieję, że pomoże, Saied K.

+1

Zaktualizowałem moje zdjęcie, na nowym zdjęciu widać domyślny styl wpf DataGrid w środowisku motywu Windows 7 Aero, wyraźnie widać to w ramce okna. Z całym szacunkiem, naprawdę nie zrozumiałeś mojego pytania. – Shimmy

0

Głosowałem za oba połączyć błędów stronie też, to naprawdę powinien być zgodny z tematem systemu domyślnie prawidłowo!

Jednak w międzyczasie znalazłem przydatny post przez Malav Dhalgara, który zawiera następujący przykład, który może być użyty do włączenia motywów Aero dla formantów w pakiecie WPFToolkit. Zakładając, że Shimmy opublikował to pytanie, że ten przykład nie pochodzi z DataGrid w .NET 4.0, ale mógłbym się mylić i być może pochodził z wersji beta lub RC. W każdym razie tutaj jest jedno przykładowe obejście dla tych, którzy używają 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> 
+0

Oczywiście, zaktualizowaliśmy to do 4.0 dawno temu, ale .NET 4 nie zrobił żadnego ulepszenia w stylu WPF. – Shimmy

+0

Dzięki za aktualizację, szkoda, że ​​nie uległa poprawie. – jpierson

8

Pochowany głęboko w MSDN, znalazłem this.

Pod dole artykułu, widać tę frazę:

Na przykład, spójrz na poniższym rysunku, który pokazuje część stylizacji z ControlTemplates Sample

Jeśli klikniesz " Styling with ControlTemplates Sample ', przeniesie Cię do download link. Po pobraniu możesz skompilować projekt i zawiera on wszystkie style, w tym nieuchwytny styl datagrid! Możesz pobrać plik DataGrid.xaml MS i zmodyfikować go do swoich potrzeb.

+0

+1 Szukałem projektu [WPF SimpleStyles] (http://msdn.microsoft.com/en-us/library/ms771597%28v=VS.90%29.aspx) zawierającego wszystkie podstawowe szablony kontrolne dla WPF . Dzięki za pomoc! – SliverNinja

+0

@Matt, czy przetestowałeś ten temat (http://msdn.microsoft.com/en-us/library/ms745683.aspx#styling_themes) i wpłynął on również na kontrolkę 'DataGrid'? – Shimmy

+2

Głosuj tutaj [tutaj] (http://goo.gl/QDYxY) i [tutaj] (http://goo.gl/S8ekJ) i zostawiaj niegrzeczne komentarze! – Shimmy