发生XamlParseException:无法从文本创建“System.Windows.Media.Geometry”

时间:2013-01-11 06:18:42

标签: c# .net wpf silverlight xaml

我仍在学习并在我的申请中面临一些问题。

我有几何字符串,我想在银灯应用程序上显示它。 我正在使用以下代码来显示它,Where" GeoObject"是字符串,是几何的标记。 几何是非常大的,并且有更多的意义。 这段代码工作正常,它不起作用,给我错误"无法创建一个' System.Windows.Media.Geometry'来自文本"。 我试图找出问题,但却找不到它。

这里有人遇到过这样的问题吗?如果是,那你找到解决方案吗?

string nsPath ="<Path xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" Data=\"";
var section = (System.Windows.Shapes.Path)XamlReader.Load(nsPath + GeoObject + "\" " + "</Path>");

我的几何字符串太大所以我不能在这里发布..... 当我把这个字符串放在Silver-light应用程序的设计窗口中的静态路径对象中时,几何体显示得很完美但是当我运行它时它会向我显示相同的错误。

当我在WPF应用程序的设计窗口中将该字符串放在静态路径对象中时,几何体显示完美且运行完美。

请帮帮我..........

1 个答案:

答案 0 :(得分:0)

有两个问题,第一个可能是格式化。在调试器中,验证您的路径是您认为的路径。由于我们无法知道GeoObject ToStrings如何(在调用重载ToString时返回的内容)我们在StackOverflow上无法诊断。

此外,我认为示例错误,并且生成的路径对象因错误的节点结束而失败。在调试器中使用此节点结束修复和检查每一行,以确保获得所需的路径和所需的演员

string nsPath ="<Path xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" Data=\"";

var path = string.Format("{0}{1}\"/>", nsPath, GeoObject);
var xmlResult = XamlReader.Load(path);
var section = (System.Windows.Shapes.Path) xmlResult;

如果这样做,请验证路径指向的是实际数据...可能存在权限问题或代码未读取您认为的数据...