2009-11-15 42 views
21

No es un secreto: el estilo predeterminado de Silverlight es DataGrid, mientras que WPF es pobre.Estilo WPF DataGrid-Silverlight DataGrid?

En lugar de reinventar la rueda, permítame preguntarle a la comunidad si alguien ha copiado los estilos SL para usar en WPF.

Por favor, eche un vistazo a las capturas de pantalla y juzgue por sí mismo cómo los equipos de Silverlight y WPF invierten en sus productos.

Silverlight-estilo por defecto cuadrícula de datos:

Silverlight DataGrid

WPF DataGrid de estilo por defecto (actualizado después de la respuesta de Saied K):
WPF DataGrid

Respuesta

7

no he encontrado ninguna proyectos con un trabajo Silverlight estilo DataGrid, así que creó uno en CodePlex:

http://datagridthemesfromsl.codeplex.com

no tiene todas las temas, pero hay por lo menos algunos allí.

+2

+1 muchas gracias! ¿Podría explicar en su página codeplex cómo usarla con una grilla de datos existente? – gideon

+1

@gideon: el enlace está [ahora disponible] (http://datagridthemesfromsl.codeplex.com/wikipage?title=How-To%3a%20use%20this%20themes%20library%20with%20your%20DataGrid&version=1). – SliverNinja

6

parece que no es el estilo fuera de la caja.
He enviado una sugerencia al sitio de sugerencias de Microsoft, por favor vote here y here !!!

Cualquier persona que haya imitado el estilo predeterminado de Silverlight DataGrid a WPF debería publicar su respuesta y la marcaré como respuesta y le daré un voto.

¡Muchas gracias!

+0

Voté y agregué un comentario sarcástico :) – devuxer

+0

Lo vi, gracias, espero que alguien de los empleados perezosos por allí lo vaya a ver. – Shimmy

+1

Abrí uno nuevo, creo que una vez que cierran una conexión, no se reciben alertas para más comentarios. Consulte https://connect.microsoft.com/WPF/feedback/ViewFeedback.aspx?FeedbackID=525883. – Shimmy

1

WPF se envía con varios estilos como Luna, Aero, Classic, etc. Estos temas se aplican en función de la configuración de su sistema. La captura de pantalla de la publicación anterior se parece al tema WPF Classic, pero supongo que estás buscando un tema más atractivo.

Si utiliza un tema del sistema Classic en su sistema operativo pero desea que su aplicación WPF use el tema Aero, por ejemplo, puede agregar un diccionario combinado a su aplicación y forzar el tema Aero como se muestra a continuación. Tenga en cuenta que es posible que deba cambiar la versión binaria y la clave pública en consecuencia.

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

Espero que ayude, Saied K.

+1

Actualicé mi foto, en la nueva foto puede ver el estilo predeterminado de wpf DataGrid en un entorno de tema Aero de Windows 7, puede verlo claramente en el marco de la ventana. Con todo respeto, realmente no entendiste mi pregunta. – Shimmy

0

Voté por tanto de los errores Site Connect también, esto realmente debe seguir el tema del sistema adecuadamente por defecto!

Sin embargo, mientras tanto encontré una publicación útil por Malav Dhalgara que incluye el siguiente ejemplo que se puede utilizar para habilitar los controles de Aero tema en el WPFToolkit. Suponiendo desde la fecha en que Shimmy publicó esta pregunta, este ejemplo no venía de DataGrid en .NET 4.0, pero podría estar equivocado y tal vez era de una de las versiones beta o RC. De todos modos, aquí hay un ejemplo de solución para aquellos que usan 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

Por supuesto, hemos actualizado a 4.0 hace mucho tiempo, pero .NET 4 no hizo ninguna mejora en el estilo de WPF. – Shimmy

+0

Gracias por la actualización, lástima que no fue mejorado. – jpierson

8

Enterrado profundamente dentro de MSDN, encontré this.

Hacia el final del artículo, verá esta frase:

Por ejemplo, echar un vistazo a la siguiente ilustración que muestra parte de la Styling con ControlTemplates Muestra

Si hace clic en ' Estilo con ControlTemplates Sample ', lo llevará a un download link. Después de la descarga, puede compilar el proyecto e incluye todo tipo de estilos, incluido el estilo de cuadrícula de datos escurridizo. Puede tomar el archivo DataGrid.xaml de MS y modificarlo para sus necesidades.

+0

+1 Estaba buscando el proyecto [WPF SimpleStyles] (http://msdn.microsoft.com/en-us/library/ms771597%28v=VS.90%29.aspx) que contenía todas las plantillas de control básicas para WPF . ¡Gracias por la ayuda! – SliverNinja

+0

@Matt, ¿probó este tema (http://msdn.microsoft.com/en-us/library/ms745683.aspx#styling_themes) y también afecta al control 'DataGrid'? – Shimmy

+2

Por favor, vote [aquí] (http://goo.gl/QDYxY) y [aquí] (http://goo.gl/S8ekJ) y deje comentarios groseros. – Shimmy