So ändern Textfeld Platzhalter-text Farbe für ein bestimmtes element, nicht global
MSDN-Listen der styles und templates für die TextBox
Klasse hier. Ich kann, außer diese Thema Ressourcen durch die Schaffung einer ResourceDictionary
im App.xaml
wie diese:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Default">
<SolidColorBrush x:Key="TextBoxPlaceholderTextThemeBrush" Color="Yellow"/>
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
</Application.Resources>
aber dies hat Einfluss auf alle TextBox
in meiner app. Wie kann ich einstellen, dass dieses Thema nur für ein bestimmtes element?
Habe ich versucht, indem Sie dieses Wörterbuch in Page.Resources
und sogar TextBox.Resources
für die TextBox
dass ich möchte, um es anzuwenden, aber es funktioniert nicht.
Ich wirklich nicht wollen, haben zu einer Neudefinition der Template
nur um diese Eigenschaft zu ändern.
BEARBEITEN Heena, die Antwort ist nah, aber ich würde auch gerne unterschiedliche Farben für helle und dunkle themes, da mein Textfeld hat einen transparenten hintergrund.
Ich es geschafft, zu erreichen das, indem es Foreground="{ThemeResource TextBoxPlaceholderTextThemeBrush}"
als Teil der Template
(also, in anderen Worten, die Vorlage ist genau die Standard-als pro MSDN) und dann die Angabe in der Seite Ressourcen:
<Page.Resources>
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Light">
<SolidColorBrush x:Key="TextBoxPlaceholderTextThemeBrush" Color="Blue"/>
</ResourceDictionary>
...
</ResourceDictionary.ThemeDictionaries>
</Page.Resources>
aber bedeutet das jetzt, ich habe zu einem riesigen ControlTemplate
Stil-setter für die textbox in der Seite meine Ressourcen zu, die nur eine exakte Kopie von der default sowieso!
Hat das etwas damit zu tun, wie TextBoxPlaceholderTextThemeBrush
behoben ist innerhalb der ControlTemplate
? also der Grund, warum es erkennt meine custom-theme Wörterbuch ist, weil die ControlTemplate
definiert wurde, in der gleichen Ressource Wörterbuch?
Wie soll dies gemacht werden? Sollte ich einfach eine Unterklasse der textbox, so dass alle, die XAML-Code kann in eine andere Datei verschoben (auch wenn es nur für eine textbox)?
InformationsquelleAutor Decade Moon | 2014-06-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt, Sie sind mit MSDN Textbox Stil
Ressource
Entfernen Foreground-Eigenschaft von Contencontrol in Vorlage
<ContentControl Foreground="{ThemeResource TextBoxPlaceholderTextThemeBrush}"/>
Xaml
Update
Ressource
Entfernen Foreground-Eigenschaft von Contencontrol in Vorlage
<ContentControl Foreground="{ThemeResource TextBoxPlaceholderTextThemeBrush}"/>
xaml
Bitte finden Sie in den aktualisierten Antworten.
InformationsquelleAutor Heena Patil
Alte Frage, ich weiß, aber ich fand es unglaublich fruststrating, die ich hatte, zu schaffen eine vollständige Kopie der TextBox style nur zum Bearbeiten der Platzhalter Farbe von einem oder zwei TextBox-Elemente.
So habe ich diese Methode, die verwendet werden können, auf einzelne Textfelder wie gewünscht:
Dies sollte auch für PasswordBoxes, da die TextBox-parameter sollten leicht austauschbar nur mit "FrameworkElement"
InformationsquelleAutor Eugen Timm