Here is exactly what I *want* to do:
- Load up a snippet of XAML code [read from a xaml file retrieved from my server] via XAMLReader.Load(). This XAML object may contain a storyboard in it's resources:
- Call the Begin() function for the storyboard when I load up the XAML snippet.
- Here is my problem though... I do not know the NAME of the storyboard when loading up the XAML snippet, or if a storyboard even exists.
< Rectangle name="myRect" fill="Blue" width="50" height="20">
< Storyboard x:Name="myRect_Storyboard" >
< DoubleAnimation Storyboard.TargetName="myRect" ... / >
< /Storyboard >
< /Rectangle.Resources >
A few notes:
- As of Silverlight 1.1... elements in a ResourceDictionary [including Storyboard] must have their x:Name set.
- Each resource property element within each ResourceDictionary must have a unique value for the x:key [name?], which serves as the unique key when values are retrieved from the ResourceDictionary.
- We can set the "Name" property... but can we set the "x:Name" property in code behind?
- XAML syntax does not include an element for the ResourceDictionary class. This is an example of XAML implicit collection syntax; a tag representing the collection element can be omitted. The elements that are added as items to the collection are specified as child elements of a property element of a property whose underlying type supports a collection Add method. [MSDN]
- Every framework-level element (FrameworkElement or FrameworkContentElement) has a Resources property, which is the property that contains the resources (as a ResourceDictionary) that a resource defines. You can define resources on any element. However, resources are most often defined on the root element, which is Page in the example. [Taken from MSDN.]
- As of Silverlight beta 2, the Application.ResourcesProperty is private.
I'll come back to this later... this was just a dumping ground for things I have found so far.
EDIT: I was trying to enumerate through the ResourceDictionary [FrameworkElement.Resources], however in Beta 2 this was always showing as 0 after the XAML snippet was loaded.
Turns out - it's a bug! So I'm just going to have to wait until it's solved unless I can think of some other way to get access to the resources without knowing their names.
No comments:
Post a Comment