0

私はまだ学習者であり、アプリケーションでいくつかの問題に直面しています。

String of Geometry があり、それを Silver Light アプリケーションに表示したいと考えています。次のコードを使用して表示しています。「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

2 つの問題があります。1 つ目はおそらく書式設定です。デバッガーで、パスが正しいことを確認します。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 に答える