2

基本的に、パス (国の輪郭) を使用して定義された地理マップをロードするアプリケーションを設計しています。

マップがウィンドウに表示され、マップ上の各国にカーソルを合わせると、色が変わるはずです。

Svgマップをxamlにエクスポートし、このxamlをカスタムユーザーコントロールに含めることで、これを部分的に行うことができました。私の現在のコードは、 THISの設計に使用されたものとよく似ています。

ただし、次のことができるようにソフトウェアを変更したいと考えています。

a) 実行時に異なるマップをロードします。したがって、実行時にパスをコントロールにロードする方法が必要です。

b) 何らかの形式の xml ファイル形式でマップ情報を取得します。これにより、マップ グラフィックを格納できるだけでなく、他のもの/情報用の追加データ ブロックも格納できます。

私はWPFに本当に慣れていないので、どうすればいいのかまったくわかりません...

4

1 に答える 1

1

出発点として、xaml ファイルをウィンドウに動的にロードすることを検討できます。たとえば、Window クラス コードから、これを行うことができます (System.Windows.Markup の XamlReader を参照)。

FileStream s = new FileStream("code.xaml", FileMode.Open);
DependencyObject root = (DependencyObject)XamlReader.Load(s);
this.Content = root;
Button button1 = (Button)LogicalTreeHelper.FindLogicalNode(root, "button1");
button1.Click += button1_Click;

code.xaml というファイルから xaml をロードし、その xaml ファイルに含まれる button1 というボタンのクリック イベントにアタッチします。

<StackPanel 
  xmlns=
    "http://schemas.microsoft.com/winfx/2006/xaml/presentation">
  <Button Name="button1" Margin="30">click me.</Button>
</StackPanel>

code.xaml 内のコードは、ウィンドウを完全に記述しているのではなく、ウィンドウの内容が何であるか (つまり、StackPanel がトップ レベルの要素) であることに注意してください。

これはまだあなたが探しているものからはほど遠いと確信していますが、うまくいけば、それが何らかの助けになるでしょう!

于 2009-08-18T19:49:23.330 に答える