Hm, gledao sam nesto o trigerima, ali ocigledno ih nisam dovoljno proucio jer sam uvek dolazio do toga da mi treba ICommand.
A napravio sam klasu UmlautStackPanel koja nasledjuje StackPanel i stavio sva 4 dugmeta tu. Ubacio ovo
Code:
private static bool contentIsLowerCase = true;
private static List<Button> umlautButtons = new List<Button>();
public static readonly DependencyProperty CaseChangerProperty = DependencyProperty.Register("CaseChanger", typeof(Button), typeof(UmlautStackPanel),
new PropertyMetadata(null, OnPropertyChanged));
U xaml-u sam bind-ovao button iz UmlautStackPanel-a koji predstavlja ovaj CaseChanger. U OnPropertyChanged kroz for loop nalazim Children panela i ukoliko je u pitanju button i nije CaseChanger onda taj button dodajem u ovu gore umlautButtons listu. Na kraju metode dodajem event handler na caseChanger.Click i tu za svako dugme iz liste, ukoliko Content nije null, menjam velicinu slova i menjam vrednost contentIsLowerCase.
Tako da ova klasa tehnicki sluzi samo za situaciju kada hocu da imam dugme koje menja velicinu Content-a ostalih dugmadi u stack panelu. Verovatno bih mogao da je preimenujem, moze da se koristi za menjanje velicine slova bilo kakvog Content-a, iako mi samo na jednom mestu treba xd. Ne znam trenutno kako se ovo sa trigerima radi tako da ne mogu da uporedim. ali pretpostavljam da su oni bolja alternativa, s obzirom na to da samo na jednom mestu koristim ovaj stack panel i ne za neku komplikovanu radnju.