2012-05-22 55 views
2

我正在Silverlight Web应用程序中使用XAML文件。我使用JavaScript来操纵xaml文件并响应事件。我在图上有一个Ellipse元素列表,当我点击其中一个椭圆的填充被设置为另一种颜色时,覆盖样式中的填充集。从JavaScript中的XAML元素中删除属性

所以点击一个椭圆后,我有效地与这样的事情结束了:

<Ellipse x:Name="g46" Style="{StaticResource GainValue}" Canvas.Top="136" Canvas.Left="766" MouseLeftButtonUp="onDotClicked" Fill="Red" /> 

现在,当我点击第二个椭圆,我想重置第一椭圆形的点击颜色。不幸的是,我不知道如何使用Javascript去除属于Ellipse(或任何其他)元素的属性。将该属性设置为null将为Ellipse指定一个空字符串,并且我经历了dot.removeAttribute('Fill')dot['Fill'].remove上的六个变体,但没有成功。

我基本上在黑暗中我应该用JavaScript来操纵xaml对象的语法。我发现了一些描述DOM语法等的参考页面,但没有任何与我在这里可以实际使用的语法相对应的东西。

回答

2

最好的办法是使用jQuery将XAML加载为XML。

你可以做

var xamlDocument = getYourXaml(); // Implement this or replace with however you're getting the XAML 
var xml = $(xamlDocument); 
xml.removeAttr('Fill'); 

//If you need to save your XAML do it here, if it's part of the page it should just work. 

更多信息:http://api.jquery.com/jQuery.parseXML/

+0

我担心它可能是不可能做到这一点基本的JavaScript。感谢您采取这种解决方法,尽管我无法在我的项目中使用它,但其他具有类似语言限制的用户应该会发现这非常有用。我已经使用原始值简单地覆盖填充,它非常黑客,但它的工作原理。 – Lilienthal