c# - 动态WPF地理 map 显示用户控件

标签 c# wpf dynamic user-controls maps

我正在设计一个应用程序,我基本上想在其中加载使用路径定义的地理 map (国家概况)。

map 应该显示在我的窗口上,当我将每个国家/地区悬停在 map 上时,它应该会改变颜色。

我设法通过将 svg 映射导出到 xaml 并将此 xaml 包含在自定义用户控件中来部分完成此操作。我当前的代码很像用于设计 THIS 的代码.

但是,我现在想以这样一种方式修改软件:

a) 在运行时加载不同的 map ;因此应该有一种方法可以在运行时将路径加载到我的控件中。

b) 以某种形式的 xml 文件格式获取 map 信息,这不仅允许我存储 map 图形,还允许我存储其他内容/信息的附加数据 block 。

我真的是 WPF 的新手,完全不知道如何去做......

最佳答案

作为起点,您可以考虑将 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 是顶级元素)。

我敢肯定这与您要找的还相去甚远,但希望对您有所帮助!

关于c# - 动态WPF地理 map 显示用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1282698/

相关文章:

c# - async 和 await 是否产生获取和释放语义?

C# For 循环索引返回 ascii 而不是当前迭代

Angular,在运行时编译和创建组件

SwiftUI 分层选取器与动态数据崩溃

c# - Xamarin 在错误的位置寻找 android sdks 并给出构建错误

c# - Java 和 C# 中的 Math "pow"返回的结果略有不同?

c# - 在多个页面上打印包含列表框的堆栈面板 wpf

.net - 如何使用WPF为桌面设计具有多个 View 的单个窗口?

WPF 使用 DataTemplate 隐式选择模板,但在 'List' 之外

返回旧步骤时,Angular Material Stepper 会导致 mat-form 字段验证动态表单