Tüm öğeler için geçerli olan bir stil belirleyebilir miyim? denedim
<Style TargetType="Control">
<Setter Property="Margin" Value="0,5" />
</Style>
Ama hiçbir şey yapmadı
Yanıtlar:
StyleYalnızca hedefliyor oluşturulan Controltüretmek unsurları değil Control. Bunu x:Keyörtük olarak ayarlamadığınızda TargetType, sizin durumunuzda x:Key="{x:Type Control}".
Bir belirtmek için herhangi bir doğrudan yolu yoktur Stylekaynaklanıyor tüm unsurları hedef TargetTypearasında Style. Başka seçenekleriniz var.
Aşağıdakilere sahipseniz Style
<Style x:Key="ControlBaseStyle" TargetType="{x:Type Control}">
<Setter Property="Margin" Value="50" />
</Style>
ButtonsÖrneğin hepsini hedefleyebilirsiniz
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource ControlBaseStyle}"/>
veya stili doğrudan herhangi bir öğe üzerinde kullanın, örneğin Button
<Button Style="{StaticResource ControlBaseStyle}" ...>
Fredrik Hedblad'ın da yanıtladığı gibi, kontrolden miras kalan tüm unsurları etkileyebilirsiniz.
Ancak, örneğin aynı stile sahip metin bloğu ve düğme için stil uygulayamazsınız.
bunu yapmak için:
<Style x:Key="DefaultStyle" TargetType="{x:Type FrameworkElement}">
<Setter Property="Control.Margin" Value="50"/>
</Style>
<Style TargetType="TextBlock" BasedOn="{StaticResource DefaultStyle}"/>
<Style TargetType="Button" BasedOn="{StaticResource DefaultStyle}"/>
FrameworkElementtüm kontrollerime uygulanmadığını merak ediyordum - bu soruyu cevapladı!