2009-08-15 10 views
2

Je suis en train de concevoir une application où je veux essentiellement charger des cartes géographiques qui sont définies en utilisant des chemins (contours de pays). Les cartes devraient être affichées sur ma fenêtre et quand je planerais chaque pays sur la carte, il devrait changer de couleur.Affichage dynamique de la carte géographique WPF usercontrol

J'ai réussi à le faire partiellement en exportant une carte svg vers xaml et en incluant ce xaml dans un custom usercontrol. Mon code actuel ressemble beaucoup à celui utilisé pour concevoir THIS.

Cependant, je veux maintenant modifier le logiciel de telle façon que je peux:

a) charge différentes cartes lors de l'exécution; donc il devrait y avoir un moyen de charger les chemins dans mon contrôle à l'exécution. B) Obtenir les informations cartographiques sous une forme de fichier xml qui me permettrait non seulement de stocker un graphique de carte, mais aussi des blocs de données supplémentaires pour d'autres informations/informations.

Je suis vraiment nouveau à WPF et ont absolument aucune idée sur la façon d'aller à ce ...

+0

Avez-vous été en mesure d'utiliser une source de mosaïques de cartes vectorielles sur WPF ?? – aledustet

Répondre

1

Comme point de départ, vous pouvez regarder en charger dynamiquement un fichier XAML dans une fenêtre. par exemple, à partir de votre code de classe de fenêtre, vous pouvez le faire (voir XamlReader en System.Windows.Markup):

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; 

pour charger XAML d'un fichier appelé code.xaml et joindre à l'événement d'un simple clic appelé button1 contenu dans ce fichier XAML:

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

Notez que le code dans code.xaml ne décrit pas une fenêtre complète, mais tout ce que le contenu de la fenêtre est (le StackPanel est l'élément de niveau supérieur) .

Je suis sûr que c'est encore loin de ce que vous cherchez, mais j'espère que ce sera utile!

Questions connexes