Laden...

Silverlight: Style aus der App.xaml wird nicht erkannt

Erstellt von mrbob vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.503 Views
M
mrbob Themenstarter:in
46 Beiträge seit 2010
vor 12 Jahren
Silverlight: Style aus der App.xaml wird nicht erkannt

Moin moin,

ich habe mal wieder ein kleines Problem.

Ich habe eine Silverlight Anwendung, in der ich in der App.xaml einen Style definiere.
Das Problem ist nur das ich nicht an den Style "rankomme".

Auch wenn ich es mit App.Current.Resources["StyleName"] probiere bekomme ich immer null zurück.

Ich habe auch schon probiert den Style in ein ResourceDictonary auszulagern, aber ich habe da auch keinen zugriff auf den Style.

Aber zurück, weiss jemand vllt. ein paar Punkte die man Beachten sollte wenn man einen Style in der App.xaml definiert und den Global zu Verfügung stellen möchte?

Mfg.
Mr. Bob

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo mrbob,

Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 5. Wir könne so nur raten und alles andere steht in der :rtfm:

Hast du auch die Keys entsprechend definiert bzw. den TargetType (der implizit den Key dann setzt)?

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

M
mrbob Themenstarter:in
46 Beiträge seit 2010
vor 12 Jahren

Moin moin,

ja das habe ich noch vergessen zu schreibe sry...

Hier mal ein auszug aus der App.xaml


<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             x:Class="Test.App">
	<Application.Resources>
		
        <Style x:Key="Style"
               TargetType="ContentControl">
			<Setter Property="Width"
                Value="178" />
		</Style>
    </Application.Resources>
</Application>

Wie man sieht setzt ich den Key und der TargetTyp. Aber ich kann nicht aus den Style zugreifen. Wenn ich jetzt in meinen UserControl auf den Style mit

Style="{StaticResource Style}"

Zugreifen möchte bekomme ich nichts zurückgeliefert. Auch wenn ich mit

App.Current.Resources["Style"]

versuche den Style zu holen bekomme ich immer null zurück.

Mfg.
Mr. Bob

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo mrbob,

da musst du noch was anderes haben. So wie du es gezeigt hast funktionierts (bei mir 😉).

Auch die Bezeichnung "Style" würde ich sinnvoller machen, z.B. "contentControlStyle".

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

M
mrbob Themenstarter:in
46 Beiträge seit 2010
vor 12 Jahren

Moin moin,

das war auch kurz nur ein Beispiel.

Ich habe es aber nun geschafft die Resourcen Datei in der Code Behind Datei zu laden und dem Control zuzuweisen:


var rd = new ResourceDictionary()
                         {
                             Source = new Uri("/TestApp;component/Resources/Resources.xaml", UriKind.Relative)
                         };

return rd["Style"] as Style;

Ich sage mal danke für deine Hilfe und mühe.

Mfg.
Mr. Bob

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo mrbob,

das ist aber auch nur ein Workaround 😉
Setzt den Style lieber in XAML, wenn das nicht geht ist irgendwo was falsch deklariert, denn normalerweise geht das schon.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

M
mrbob Themenstarter:in
46 Beiträge seit 2010
vor 12 Jahren

Moin moin,

ja gfoidl mir ist bewusst das es nur ein Workaround ist, aber es geht erstmal.
Und da es jetzt auch bis morgen mal lauffähig sein muss (Ich bin dann erstmal zwei Wochen im Urlaub), bin ich erstmal zufrieden das es mit dem Workaround geht.

Nach dem Urlaub setzte ich mal hin und mache es richtig (Bin auch nicht gerade der Fan von Workarounds)

Mfg.
Mr. Bob