绑定包含 WPF 中的 WindowsFormHost 项的项控件
本文关键字:控件 WindowsFormHost 中的 包含 WPF 绑定 | 更新日期: 2023-09-27 18:35:36
我正在为我们的 WPF 应用程序构建一个 UI 元素,该元素允许用户可视化以网格格式对齐的图形集合。据我了解,您可以将 ItemsControl 与 WrapPanel 一起使用,它将很好地对齐网格格式的 ui 元素。
当我们尝试使用 winforms 图形库 (zedgraph) 来生成图形时,困难就来了。这意味着我们必须使用WindowsFormsHost
来显示图形视图。我尝试使用普通数据绑定绑定图形集合,但它并没有真正起作用:
XAML:
<ItemsControl ItemsSource="{Binding Graphs}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<WindowsFormsHost Margin="5">
<ui:Graph></ui:Graph>
</WindowsFormsHost>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
上面的代码不显示任何内容,但访问了图形获取器。
另外,即使我取消绑定并且只是在 ItemsControl 中插入一些随机图形视图......它仍然不显示任何内容:
XAML:
<ItemsControl>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<WindowsFormsHost Margin="5">
<ui:Graph></ui:Graph>
</WindowsFormsHost>
<WindowsFormsHost Margin="5">
</WindowsFormsHost>
<ui:Graph></ui:Graph>
</WindowsFormsHost>
<WindowsFormsHost Margin="5">
<ui:Graph></ui:Graph>
</WindowsFormsHost>
</ItemsControl>
为了测试以确保图形库正常运行,这确实会显示一个图形:
<Grid>
<WindowsFormsHost Margin="5">
<ui:Graph></ui:Graph>
</WindowsFormsHost>
</Grid>
谁能引导我走向正确的方向?非常感谢。
这可能与布局有关。 WinForms 很糟糕,需要你对所有东西的大小进行硬编码。
尝试为winforms主机提供固定的硬编码宽度和高度