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 回答