Was ist die einfachste Möglichkeit, Ressourcen zu teilen zwischen Benutzersteuerelemente in einer WPF-Benutzer Control Bibliothek?
Gibt es eine WPF-Benutzer Control Bibliothek und zwei (oder mehr) Benutzer-Steuerelemente ein. Ich muss mit dem gleichen Stil in beiden Bedienelemente. Wie kann ich diesen Stil?
Zum Beispiel:
Dies ist der Stil:
<Style x:Key="customLabelStyle" TargetType="Label">
...
</Style>
Benutzer-Steuerelement Ein:
<UserControl x:Class="Edu.Wpf.Example.UserControlA"
...xmlns stuff... >
<Grid>
... some xaml markup...
<Label Style="{StaticResource customLabelStyle}"/>
</Grid>
</UserControl>
UserControl B:
<UserControl x:Class="Edu.Wpf.Example.UserControlB"
...xmlns stuff... >
<Grid>
... some another xaml markup...
<Label Style="{StaticResource customLabelStyle}"/>
</Grid>
</UserControl>
Also, wie kann ich teilen dieser Stil zwischen Benutzer-Steuerelemente in der Bibliothek, ohne mit der Anwendung app.xaml-ressourcenwörterbuch?
UPDATE
Kann ich hinzufügen, Themes\Generic.xaml in meine Bibliothek und definieren Sie den Stil dort. Aber in diesem Fall habe ich ComponentResourceKey den Schlüssel des Stil. Richtig? Es ist lang und nicht sehr praktisch, Ausdruck...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie festlegen, wie freigegebene Ressourcen in einem separaten
ResourceDictionary
, dann verschmelzen Sie in IhrerUserControl
's-Ressourcen mithilfe von MergedDictionaries.Sagen, dass Sie eine Ressource definieren von Farben wie dieses:
Und ein anderes, definieren einige grundlegende Stile wie diese:
Können Sie fügen Sie dann Ihre Ressourcen in die App.xaml-Anwendung.Ressourcen-tag, wie hier gezeigt:
Dann, in all Ihren Benutzersteuerelemente, die Sie verwenden können, die Stile oder Bürsten, die StaticResources wie dein Beispiel-code zeigt.
Fand ich die Lösung, die in design-Zeit auch (zumindest in VS2010) :
Diese angefügte Eigenschaft kann angewendet werden, um ein FrameworkElement. Stellen Sie sich die customLabelStyle definiert wird, in der Stile.xaml-Wörterbuch in der Edu.Wpf.Beispiel-Projekt. So in diesem Stil angewendet werden kann, in der folgenden Weise:
UserControl.Resources
. Es ist besser behandelt durch ReSharper.