Einstellen zweimal gleichen Stil zu verschiedenen Instanzen in Code
-
06-07-2019 - |
Frage
Ich versuche Formdaten wieder zu verwenden, um dynamisch neue Formen in Code zu erstellen. Grundsätzlich mag ich in XAML dieses Reuse Pfad Objekt tun, sondern im Code. Hier ist die Situation:
Path path = new Path();
path.Style = (System.Windows.Style)this.Resources["PathStyle"];
Path path2 = new Path();
path2.Style = (System.Windows.Style)this.Resources["PathStyle"];
Aber ich bekomme ein Argument in der vierten Zeile sagen " Wert nicht innerhalb des erwarteten Bereichs fällt"
Der Code ist in der Maincontrol einer SL 3-Anwendung. Der XAML-Code für die Ressource
<UserControl.Resources>
<Style x:Key="PathStyle" TargetType="Path">
<Setter Property="Data" Value="M63,171 L138,117 L168,189 L99,219"/>
<Setter Property="Fill" Value="#FFF07E7E"/>
<Setter Property="Height" Value="103"/>
<Setter Property="Width" Value="106"/>
<Setter Property="Stroke" Value="#FF000000"/>
<Setter Property="Stretch" Value="Fill"/>
</Style>
</UserControl.Resources>
Irgendwelche Ideen?
Lösung
Es scheint, dass wirklich dabei um einen Fehler in der SL3 Beta, aber jemand hat einen Weg darum herum gefunden:
http : //tozon.info/blog/post/2009/06/27/Countdown-to-Silverlight-3-2-Setting-styles.aspx
Es wird nicht mehr ein Problem vom 12. Juli, als SL 3 Treffer RTM.
Andere Tipps
Das ist seltsam ... ich kann nicht sehen, warum soll es das erste Mal arbeiten und zum zweiten Mal scheitern. Versuchen Sie, eine Zwischengröße zu verwenden, anstatt Ressourcen für den Zugriff auf zweimal:
Style style = (System.Windows.Style)this.Resources["PathStyle"];
Path path = new Path();
path.Style = style;
Path path2 = new Path();
path2.Style = style;