WPF: Como faço para herdar valores de propriedade a todos os controles filho?
-
05-07-2019 - |
Pergunta
Eu tenho UserControls que contêm outros controles. Quero que se eu definir uma cor de primeiro plano para o UserControl, todos os controles filho automaticamente herdá-la. Eu tenho o mesmo problema com a pia batismal / tamanho.
Posso definir essas propriedades de algum modo auto / herdar? Isso é possível para definir todos os subcontrols sem um loop?
Solução
Você pode criar dicionários de recursos para definir estilos padrão global.
Você também pode fazer referência a um dicionário de recurso ou definir um estilo de qualquer objeto.
Em ambos os casos esses estilos serão aplicadas a todos os objetos filho que não tem um estilo definido explicitamente ...
Exemplo:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<!--Default styles that will apply to any object of the specified type (if it doesn't have style set locally)-->
<Style TargetType="Label" >
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="Padding" Value="0"/>
</Style>
</ResourceDictionary>
Outras dicas
olhar em usar estilos e configurações BasedOn.
Eu escrevi recentemente um exemplo de algo semelhante localizada aqui . Unfortunally a questão estava relacionada com prata Lite, portanto, não responder à pergunta, mas eu acho que pode lhe dar algumas idéias sobre onde procurar.