Schaltfläche Ändern.Inhalt durch Stil programmgesteuert
Ich möchte programmgesteuert zu ändern, Inhalt der-Taste über style ändern. Ich schuf einen Stil, Hinzugefügt setter für Button.ContentProperty
neue Stil-Taste, aber der Inhalt wurde nicht verändert.
Weiß ich, dass ich set-Taste-Inhalt nicht direkt, aber jetzt würde ich gerne wissen, warum dies nicht funktioniert:
Style aStyle = new Style();
Setter bSetter = new Setter();
bSetter.Property = Button.ContentProperty;
bSetter.Value = "Some Text";
aStyle.Setters.Add(bSetter);
aButton.Style = aStyle;
XAML:
<Button x:Name="aButton" Style="{x:Null}" Click="Button_Click" />
Konnte ich ändern Sie das Aussehen der a-Taste auf diese Weise, aber ich konnte es nicht ändern Inhalt. Btw, ich fand beispielsweise in MCTS Buch über WPF.
Irgendeine Idee?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser code funktioniert für mich so wie es ist. Sind Sie sicher, dass Sie nicht ändern
Content
vom anderen Ort? Sie können versuchen,... , um es herauszufinden. Ich verwende WPF snoop für diese.
Gut, heute fand ich heraus, dass es um die Rangfolge bei der Einstellung der Eigenschaft Werte in WPF. Es gibt eine Reihe von Mechanismen für die Einstellung der Eigenschaft value und der Wert der Eigenschaft hängt davon ab, wie es gesetzt wurde, nicht, Wann es gesetzt wurde.
Einstellung der Eigenschaft-Wert in XAML oder im code wird immer vor Werte, die von Stil (und Vorlagen und Trigger). Das heißt, wenn die Eigenschaft Wert wird in XAML oder im code, kann es nicht überschrieben werden durch festlegen von style.
In der Lage sein zu ändern Eigenschaftswert mit dem Mechanismus der niedrigeren Rangfolge, muss der Wert mit gelöscht
DependencyObject.ClearValue
Methode.In meinem code-Beispiel oben, es war eine andere Methode, die festgelegt
Button.Content
- Eigenschaft im code, so dass Stil nicht ändern konnte es keiner mehr. Lösung für das hinzufügenClearValue
Methode: