0

我仍然是学习者,并且在我的应用程序中面临一些问题。

我有几何字符串,我想在银光应用程序上显示它。我正在使用以下代码来显示它,其中“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 应用程序设计窗口中的静态路径对象中时,几何图形完美显示并且运行完美。

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

4

1 回答 1

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;

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

于 2013-01-11T11:55:39.470 回答