2010-01-26 12 views

Respuesta

19

Usted puede crear su propio contenedor para la pieza de la interfaz de usuario en cuestión y establecer InheritanceBehavior-SkipAllNow (o el valor apropiado para su situación):

using System.Windows; 
using System.Windows.Controls; 

public class NoInheritanceContentControl : ContentControl 
{ 
    public NoInheritanceContentControl() 
    { 
     InheritanceBehavior = InheritanceBehavior.SkipAllNow; 
    } 
} 

continuación, sólo puede pegarse NoInheritanceContentControl en su árbol visual y todo lo que contiene no heredará estilos.

+0

Eso suena prometedor. Es tarde, pero lo intentaré mañana. –

+0

No podía esperar. Eso hizo exactamente lo que yo quería. –

+0

Gracias gracias thankyou – stone

2

Esto es complicado, pero se puede probar esto,

  1. Crear DefaultStyles diccionario de recursos
  2. crear estilos con nombre del control que desea conservar el estilo por defecto de la siguiente manera ..
<Style x:Key="DefaultButtonStyle" 

TargetType = "{x: Type Button}" BasedOn = "{StaticResource {x: Type Button}}" />

  1. Asegúrate de que este DefaultStyles se agregue antes de que se apliquen los temas, debe ser la primera entrada en los recursos de tu aplicación.

  2. Luego puede aplicar el estilo "DefaultButtonStyle" a cualquier control en tiempo de ejecución para conservar su estilo predeterminado.

Cuestiones relacionadas