Cloning UIElements<p align=left><font face=Arial size=2></font> </p> <p>In my XAML I create a row of objects, which I wish to replicate.</p> <p align=left> </p> <p align=left>eg. Buttons TextBoxes ComboBoxes Menus etc.</p> <p align=left> </p> <p align=left>Is there an easy way of cloning the objects?</p> <p align=left> </p> <p align=left>eg. Text on buttons, ReadOnly attributes, Events, Menu Contents?</p>© 2009 Microsoft Corporation. All rights reserved.Thu, 19 Jun 2008 00:15:52 Z0df6181d-938f-4f45-9463-5b5035b57000http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/0df6181d-938f-4f45-9463-5b5035b57000#0df6181d-938f-4f45-9463-5b5035b57000http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/0df6181d-938f-4f45-9463-5b5035b57000#0df6181d-938f-4f45-9463-5b5035b57000ZiggyShorthttp://social.msdn.microsoft.com/Profile/en-US/?user=ZiggyShortCloning UIElements<p align=left><font face=Arial size=2></font> </p> <p>In my XAML I create a row of objects, which I wish to replicate.</p> <p align=left> </p> <p align=left>eg. Buttons TextBoxes ComboBoxes Menus etc.</p> <p align=left> </p> <p align=left>Is there an easy way of cloning the objects?</p> <p align=left> </p> <p align=left>eg. Text on buttons, ReadOnly attributes, Events, Menu Contents?</p>Tue, 18 Dec 2007 17:41:18 Z2007-12-18T19:37:51Zhttp://social.msdn.microsoft.com/Forums/en-US/wpf/thread/0df6181d-938f-4f45-9463-5b5035b57000#814ab255-5805-45c5-a613-24ecd8980a00http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/0df6181d-938f-4f45-9463-5b5035b57000#814ab255-5805-45c5-a613-24ecd8980a00Ckiszkahttp://social.msdn.microsoft.com/Profile/en-US/?user=CkiszkaCloning UIElements<p>Do you want to visualy clone with no behaviours? If so use a visual brush. Then fill a rectangle with your visual brush resource. If you need an example let me know.</p> <p align=left> </p> <p align=left>-- Chris </p> <p align=left><font face=Arial size=2></font> </p>Tue, 18 Dec 2007 17:47:03 Z2007-12-18T17:47:03Zhttp://social.msdn.microsoft.com/Forums/en-US/wpf/thread/0df6181d-938f-4f45-9463-5b5035b57000#4d607c55-187c-4e88-8760-13da66d9a772http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/0df6181d-938f-4f45-9463-5b5035b57000#4d607c55-187c-4e88-8760-13da66d9a772TomGiamhttp://social.msdn.microsoft.com/Profile/en-US/?user=TomGiamCloning UIElements<p>You can use this for cloning UIElements:</p> <p align=left> </p><font size=2> <p></font><font color="#0000ff" size=2>public</font><font size=2> </font><font color="#0000ff" size=2>static</font><font size=2> </font><font color="#2b91af" size=2>UIElement</font><font size=2> cloneElement(</font><font color="#2b91af" size=2>UIElement</font><font size=2> orig)</p> <p>{</p> <blockquote dir=ltr style="margin-right:0px"> <p></font><font color="#0000ff" size=2>if</font><font size=2> (orig == </font><font color="#0000ff" size=2>null</font><font size=2>)</p> <p></font><font color="#0000ff" size=2>return</font><font size=2> (</font><font color="#0000ff" size=2>null</font><font size=2>);</p> <p></font><font color="#0000ff" size=2>string</font><font size=2> s = </font><font color="#2b91af" size=2>XamlWriter</font><font size=2>.Save(orig);</p> <p></font><font color="#2b91af" size=2>StringReader</font><font size=2> stringReader = </font><font color="#0000ff" size=2>new</font><font size=2> </font><font color="#2b91af" size=2>StringReader</font><font size=2>(s);</p> <p></font><font color="#2b91af" size=2>XmlReader</font><font size=2> xmlReader = </font><font color="#2b91af" size=2>XmlTextReader</font><font size=2>.Create(stringReader, </font><font color="#0000ff" size=2>new</font><font size=2> </font><font color="#2b91af" size=2>XmlReaderSettings</font><font size=2>());</p> <p></font><font color="#0000ff" size=2>return</font><font size=2> (</font><font color="#2b91af" size=2>UIElement</font><font size=2>)</font><font color="#2b91af" size=2>XamlReader</font><font size=2>.Load(xmlReader);</p></blockquote> <p>}</p></font> <p align=left> </p> <p align=left>Some attributes do have a clone method, like imageBrush for example.</p> <p align=left> </p> <p align=left>Tom</p> <p align=left> </p>Tue, 18 Dec 2007 17:47:17 Z2007-12-18T19:37:51Zhttp://social.msdn.microsoft.com/Forums/en-US/wpf/thread/0df6181d-938f-4f45-9463-5b5035b57000#70278531-eed5-414b-84e7-083bd96ba2a8http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/0df6181d-938f-4f45-9463-5b5035b57000#70278531-eed5-414b-84e7-083bd96ba2a8ZiggyShorthttp://social.msdn.microsoft.com/Profile/en-US/?user=ZiggyShortCloning UIElements<p>Thanks Tom,</p> <p align=left>That has helped me out enormously.</p> <p align=left> </p> <p align=left>Only thing is: if I am hosting Windows.System.Forms controls in WindowsFormHost tag, they do not get handled; but there's only a  few of those, which I handle manually.</p> <p align=left> </p> <p align=left>Thanks again!</p> <p align=left><font face=Arial size=2></font> </p>Tue, 18 Dec 2007 19:39:25 Z2007-12-18T19:39:25Z