Runtime Alternative to XamlReader.Load in Silverlight

Update: This was a Silverlight Beta 1 example. Beta 2 now has updates to make this even easier. Here is an example.

I can see XamlReader.Load has it's uses for adding FrameworkElements at runtime, but I really hate the way the code looks. Additionally, I don't like the idea of managing a bunch of String.Format statements for my XAML. Things get even more complex when you want to take advantage of events. Luckily, there is an alternative.

Here is an example of adding elements (ellipse, storyboard, doubleanimation) at runtime, and attaching events so that they are removed when the storyboard ends:

 public Page()
        {
            InitializeComponent();
            this.MouseLeftButtonUp += new MouseButtonEventHandler(Page_MouseLeftButtonUp);
            updateElementCount();
        }

        public int spriteCount { get; set; }

        void Page_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            Point point = e.GetPosition(this);
            Ellipse ellipse = new Ellipse();
            SolidColorBrush mySolidColorBrush = new SolidColorBrush();
            DoubleAnimation animation = new DoubleAnimation();
            Storyboard storyBoard = new Storyboard();
            
            spriteCount += 1;
            string spriteName =string.Format("SpriteEllipse{0}", spriteCount);
            ellipse.SetValue(Ellipse.NameProperty, spriteName);
            mySolidColorBrush.Color = Color.FromArgb(255, 0, 0, 0);
            ellipse.Fill = mySolidColorBrush;
            ellipse.Width = 30;
            ellipse.Height = 30;
            ellipse.SetValue(Canvas.TopProperty, (point.Y - ellipse.Width/2));
            ellipse.SetValue(Canvas.LeftProperty, (point.X - ellipse.Width/2));
            LayoutRoot.Children.Add(ellipse);
            
            animation.Duration = new TimeSpan(0,0,3);
            animation.From = 1;
            animation.To = 0;
            animation.SetValue(Storyboard.TargetNameProperty, spriteName);
            animation.SetValue(Storyboard.TargetPropertyProperty, "Opacity");

            storyBoard.Completed+=new EventHandler(storyBoard_Completed);
            storyBoard.SetValue(Storyboard.TargetNameProperty, spriteName);
            storyBoard.Children.Add(animation);
            LayoutRoot.Resources.Add(storyBoard);
            storyBoard.Begin();

            updateElementCount();
        }

        void storyBoard_Completed(object sender, EventArgs e)
        {
            Storyboard storyBoard = (Storyboard)sender;
            string spriteName = storyBoard.GetValue(Storyboard.TargetNameProperty).ToString();
            FrameworkElement sprite = (FrameworkElement)LayoutRoot.FindName(spriteName);
            LayoutRoot.Children.Remove(sprite);
            LayoutRoot.Resources.Remove(storyBoard);
            updateElementCount();
        }

        void updateElementCount()
        {
            this.txtChildren.Text = string.Format("Children.Count = {0}", LayoutRoot.Children.Count());
            this.txtResources.Text = string.Format("Resources.Count = {0}",  LayoutRoot.Resources.Count);
        }
Published Sunday, June 01, 2008 1:01 PM by RogerGuess

Comments

# http://hannuri.tistory.com/

Tuesday, June 10, 2008 8:36 PM by TrackBack

# Runtime Alternative to XamlReader.Load in Silverlight 2 Beta 2

Wednesday, June 11, 2008 10:46 PM by RogerGuess

This Sample was update for Silverlight 2 Beta 2 ( the beta 1 example is here ) I can see XamlReader.Load

# http://hannuri.tistory.com/

Thursday, June 26, 2008 4:08 PM by TrackBack

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, November 24, 2008 6:25 PM by bxpgwt

fidUpG  <a href="hdwconmvfssc.com/.../a>, [url=http://afwtblovnzqk.com/]afwtblovnzqk[/url], [link=http://chqpyvqkvktw.com/]chqpyvqkvktw[/link], http://yorellygkyxq.com/

# re: Runtime Alternative to XamlReader.Load in Silverlight

Wednesday, December 10, 2008 5:02 AM by iunncb

V7XNS5  <a href="kdtmjcrvmhrx.com/.../a>, [url=http://wmrnigicarwe.com/]wmrnigicarwe[/url], [link=http://dfsqhdpuzwrl.com/]dfsqhdpuzwrl[/link], http://nzrybffcvpdx.com/

# re: Runtime Alternative to XamlReader.Load in Silverlight

Tuesday, February 24, 2009 10:52 AM by x0fdb72

<a href="http://e5de1c.com">b8ff7c</a> | [url=http://cb7a90.com]e99910[/url] | [link=http://affed1.com]289d8f[/link] | http://15b71e.com | 86e2af | [http://4d85ee.com 45f884]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Tuesday, February 24, 2009 10:52 AM by x0fdb72

<a href="http://e5de1c.com">b8ff7c</a> | [url=http://cb7a90.com]e99910[/url] | [link=http://affed1.com]289d8f[/link] | http://15b71e.com | 86e2af | [http://4d85ee.com 45f884]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Tuesday, February 24, 2009 10:52 AM by x0fdb72

<a href="http://e5de1c.com">b8ff7c</a> | [url=http://cb7a90.com]e99910[/url] | [link=http://affed1.com]289d8f[/link] | http://15b71e.com | 86e2af | [http://4d85ee.com 45f884]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Tuesday, February 24, 2009 10:59 AM by x109a71

<a href="http://e85eda.com">f2dece</a> | [url=http://6b59fc.com]7a11e9[/url] | [link=http://4e35f0.com]06f9bf[/link] | http://b73d0c.com | 3806e0 | [http://e40f5f.com 78048f]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Tuesday, February 24, 2009 11:57 AM by xa8bb54

<a href="http://5f2515.com">a0b57d</a> | [url=http://9fb77a.com]39381d[/url] | [link=http://a12b40.com]6a399e[/link] | http://50516f.com | e34a03 | [http://c54365.com c16e7d]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Tuesday, February 24, 2009 11:57 AM by xa8bb54

<a href="http://5f2515.com">a0b57d</a> | [url=http://9fb77a.com]39381d[/url] | [link=http://a12b40.com]6a399e[/link] | http://50516f.com | e34a03 | [http://c54365.com c16e7d]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Sunday, March 01, 2009 6:55 PM by icgcnyao

fDO4Dc  <a href="zzigcyemrage.com/.../a>, [url=http://rbmluoobdrdf.com/]rbmluoobdrdf[/url], [link=http://ctofhjpxaeqf.com/]ctofhjpxaeqf[/link], http://zydpfxtzylod.com/

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, March 09, 2009 10:15 PM by gqbtxpurg

PIaYAZ  <a href="xutqzlggskmw.com/.../a>, [url=http://ocllfwnajnex.com/]ocllfwnajnex[/url], [link=http://iutmdwsnpofa.com/]iutmdwsnpofa[/link], http://noceycbvuhhl.com/

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, May 04, 2009 4:18 PM by wrtnbrjlqqz

pcPn2O  <a href="wdxwsexvqtwg.com/.../a>, [url=http://veyipmkuwroa.com/]veyipmkuwroa[/url], [link=http://qvcujbylhoxl.com/]qvcujbylhoxl[/link], http://vmsjxlcxezxx.com/

# re: Runtime Alternative to XamlReader.Load in Silverlight

Saturday, June 13, 2009 9:42 PM by deurfm

Ds2pIj  <a href="lbdncjmafbfz.com/.../a>, [url=http://fobxsyagkmij.com/]fobxsyagkmij[/url], [link=http://cyocktrvslxg.com/]cyocktrvslxg[/link], http://zvomixfmvgfz.com/

# re: Runtime Alternative to XamlReader.Load in Silverlight

Sunday, June 14, 2009 1:12 AM by dlhjpuulz

8IZA6C  <a href="aalogrkwmfme.com/.../a>, [url=http://ywbujitpdmlx.com/]ywbujitpdmlx[/url], [link=http://cizupytnjpcd.com/]cizupytnjpcd[/link], http://kfkyraiwrncv.com/

# re: Runtime Alternative to XamlReader.Load in Silverlight

Tuesday, June 16, 2009 1:01 PM by mmlhpylf

6C1Lgy  <a href="pvaidfvnqnfo.com/.../a>, [url=http://djcbrmctmjkn.com/]djcbrmctmjkn[/url], [link=http://ginjwpnwmoqe.com/]ginjwpnwmoqe[/link], http://kynegvyzggye.com/

# re: Runtime Alternative to XamlReader.Load in Silverlight

Tuesday, June 30, 2009 2:21 AM by gmgnguql

EjqRdp  <a href="fpjkuugfqkta.com/.../a>, [url=http://xtgjqoddruqu.com/]xtgjqoddruqu[/url], [link=http://jbyubxjrjjhx.com/]jbyubxjrjjhx[/link], http://swxuvqihuous.com/

# re: Runtime Alternative to XamlReader.Load in Silverlight

Tuesday, June 30, 2009 2:22 AM by gmgnguql

EjqRdp  <a href="fpjkuugfqkta.com/.../a>, [url=http://xtgjqoddruqu.com/]xtgjqoddruqu[/url], [link=http://jbyubxjrjjhx.com/]jbyubxjrjjhx[/link], http://swxuvqihuous.com/

# re: Runtime Alternative to XamlReader.Load in Silverlight

Wednesday, August 19, 2009 12:18 AM by daria

1dXtPq Gra7noI59Unral92Bb7wf

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:24 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:24 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:24 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:24 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:24 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:24 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:24 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:24 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:24 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:24 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:24 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:24 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:24 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:24 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:24 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:25 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:25 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:25 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Monday, September 07, 2009 1:25 AM by x939b45

<a href="http://9c49b5.com">a78abe</a> | [url=http://63b7fc.com]3b0f10[/url] | [link=http://734405.com]5091c2[/link] | http://748506.com | 66fc1f | [http://5e07d6.com d7531b]

# re: Runtime Alternative to XamlReader.Load in Silverlight

Friday, October 02, 2009 1:46 AM by idjwtz

vgg7eg  <a href="pwphmsuffugp.com/.../a>, [url=http://tclhaeoorovy.com/]tclhaeoorovy[/url], [link=http://luzsgpiestag.com/]luzsgpiestag[/link], http://iillskahwgpr.com/

# re: Runtime Alternative to XamlReader.Load in Silverlight

Friday, October 02, 2009 1:47 AM by idjwtz

vgg7eg  <a href="pwphmsuffugp.com/.../a>, [url=http://tclhaeoorovy.com/]tclhaeoorovy[/url], [link=http://luzsgpiestag.com/]luzsgpiestag[/link], http://iillskahwgpr.com/

# re: Runtime Alternative to XamlReader.Load in Silverlight

Wednesday, November 04, 2009 7:39 AM by rrupid

TsAXxK  <a href="rhlcfarzyojf.com/.../a>, [url=http://kcgohjgoecnv.com/]kcgohjgoecnv[/url], [link=http://jnzhbzspfagf.com/]jnzhbzspfagf[/link], http://svkyfqbvsuxs.com/

# re: Runtime Alternative to XamlReader.Load in Silverlight

Friday, January 01, 2010 5:19 AM by vapebfq

VkGiut  <a href="yviudvgicucl.com/.../a>, [url=http://gvzwydfnkooy.com/]gvzwydfnkooy[/url], [link=http://peokwqyasjkc.com/]peokwqyasjkc[/link], http://feamliznoeur.com/

Leave a Comment

(required) 
(required) 
(optional)
(required) 
Powered by Community Server (Non-Commercial Edition), by Telligent Systems