estilos c# wpf xaml styles basedon

c# - wpf estilos



BasedOn="{StaticResource{x: Type TextBox}}" en Code Behind for Style (3)

¿Cómo se puede configurar lo siguiente en el código detrás?

<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">

Estoy usando un tema combinado en App.xaml. Funciona muy bien para todos los controles, pero cuando defino un estilo para algo, por ejemplo, TextBox , el estilo del tema no se selecciona a menos que use BasedOn como antes, en su lugar, obtiene el estilo predeterminado de TextBox .

Ahora estoy creando un DataGridTextColumn en el código detrás y no puedo hacer que la parte BasedOn funcione para EditingElementStyle

Style editingStyle = new Style(typeof(TextBox)); editingStyle.BasedOn = ...?;

¿Alguna sugerencia? Además, ¿hay alguna forma de obtener el estilo del tema en lugar del estilo predeterminado aplicado sin usar BasedOn?

Gracias


Esto debería funcionar:

Style baseStyle = new Style(typeof(TextBox)); Style editingStyle = new Style(typeof(TextBox)); editingStyle.BasedOn = baseStyle;

También puedes hacerlo en el constructor:

Style editingStyle = new Style(typeof(TextBox), baseStyle);


Me gusta la respuesta de Pavlo Glazkov , pero no compila.

FindResource es miembro (no estático) de FrameworkElement . Es necesario identificar el contexto de la solicitud de búsqueda.

Así que recomiendo esto:

style.BasedOn = (Style)frameworkElement.FindResource(typeof(TextBox));


Prueba esto:

editingStyle.BasedOn = (Style) FindResource(typeof (TextBox))

Y no sé de qué manera puedes hacer que aplique el estilo del tema sin especificar BasedOn . Si existe tal manera, me gustaría saberlo también ...