2011-03-10 7 views
6

Básicamente tiene la siguiente estructura:WPF UserControl Style: ¿Cómo configuro el estilo del elemento principal si el control se encuentra en un ensamblaje externo?

<Window ... 
     xmlns:my="http://schemas.company.com/WPF/Controls" 
     > 
    <Window.Resources> 
     <Style x:Key="MyStyle1" TargetType={x:Type TextBlock}> 
      ... 
     </Style> 
    </Window.Resources> 
    <Grid x:Name="LayoutRoot"> 
     <my:MyUserControl1 /> 
     <my:MyUserControl1 /> 
     <my:MyUserControl2 /> 
     <my:MyUserControl2 /> 
    </Grid> 
</Window> 

<UserControl ... 
      > 
    <TextBlock Style={ ?? What Goes Here ??} /> 
</UserControl> 


¿Cómo solicito el estilo declarada en los recursos de la ventana para que vaya al control de usuario que se está tirando de un montaje externo?

Respuesta

5

Si desea que el estilo que se aplicará a todos los TextBlock s, incluyendo los que están en MyUserControl, acaba de salir de la x: Clave a cabo y se aplica implícitamente

<Style TargetType="{x:Type TextBlock}"> 
    <Setter Property="Foreground" Value="Green"/> 
</Style> 

Si usted quiere que sea explícitamente establecido puede utilizar DynamicResource en el UserControl s

<Window.Resources> 
    <Style x:Key="MyStyle1" TargetType="{x:Type TextBlock}"> 
     <Setter Property="Foreground" Value="Green"/> 
    </Style> 
</Window.Resources> 
<StackPanel> 
    <my:UserControl1 /> 
    <my:UserControl1 /> 
    <my:UserControl1 /> 
    <my:UserControl1 /> 
</StackPanel> 

<UserControl ...> 
    <TextBlock Style="{DynamicResource MyStyle1}" Text="TextBlock"/> 
</UserControl> 
+0

No creo DynamicResource es un requisito aquí ... –

+1

@Aaron: Si utiliza un 'StaticResource' podrás obtener una excepción que diga "No se puede encontrar el recurso llamado 'MyStyle1'. Los nombres de los recursos son sensibles a las mayúsculas y minúsculas " –

+0

Derecha ... notaron que el recurso está en una ventana; no App.xaml u otro se fusionaron en ResourceDictionary. OP debería arrancarlo de Window ... –

Cuestiones relacionadas