gpt4 book ai didi

c# - 在 WPF 中绑定(bind)包含 WindowsFormHost 项的 ItemsControl

转载 作者:太空宇宙 更新时间:2023-11-03 10:56:12 25 4
gpt4 key购买 nike

我正在为我们的 WPF 应用程序构建一个 UI 元素,它允许用户可视化以网格格式对齐的图形集合。据我了解,您可以将 ItemsControl 与 WrapPanel 一起使用,这将很好地以网格格式对齐 ui 元素。

当我们尝试使用 winforms 图形库 (zedgraph) 生成图形时,困难就来了。这意味着我们必须使用 WindowsFormsHost 来显示图形 View 。我尝试使用普通数据绑定(bind)来绑定(bind)图形集合,但它实际上不起作用:

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>

上面的代码没有显示任何内容,但是访问了 Graphs getter。

此外,即使我取消了绑定(bind),只是在 ItemsControl 中插入了一些随机图形 View ...它仍然不显示任何内容:

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 太可怕了,它要求你硬编码所有东西的大小。

尝试为 winformshost 提供固定的硬编码宽度和高度

关于c# - 在 WPF 中绑定(bind)包含 WindowsFormHost 项的 ItemsControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19411730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com