【问题标题】:Displaying multiple FrameworkElement items in WPF在 WPF 中显示多个 FrameworkElement 项
【发布时间】:2015-04-01 22:23:05
【问题描述】:

我有自定义的 FrameworkElement(显示 3D 模型,并允许控制相机),我需要同时显示这种类型的多个项目(它们应该是重叠的)。项目存储在列表中。 现在,我可以通过简单地在 Grid 中放置几个​​ ContentControls 并使用我的 FrameworkElements 作为内容来实现这一点。而且效果很好。但是,任何为自定义元素数量实现该结果的尝试都失败了。我尝试使用 ItemsControl,但它不起作用。 有没有方便的方法来显示源列表中的多个项目,将它们放在一个位置?

更新

Canvas 和 ItemsControl 根本不适合我。即使我只是将单个元素移到那里。 也就是说,

<ContentControl Content="{Binding DrawableElements[0]}"></ContentControl>

效果很好,但是

<ItemsControl>
    <ContentControl Content="{Binding DrawableElements[0]}"></ContentControl>
</ItemsControl>

根本不起作用,但这是非常基本的方法。帆布也是如此。我不知道,如果我用对了,但我就是不明白,为什么不想显示带有单个元素的简单 ItemsControl。

更新 #2

如果我有具有某些属性的类,其中包含 FrameworkElement,那么使用此类实例列表的 ItemsControl 将与除 FrameworkElement 之外的任何属性一起正常工作。现在我真的无法理解发生了什么。

注意: 我正在尝试遵循 MVVM 模式,因此代码对 UI 应该没有直接影响。这就是我首先选择 ContentControl 的原因。否则我可能会简单地将新的 FrameworkElements 添加为简单 Grid 的子项。

【问题讨论】:

    标签: c# wpf contentpresenter


    【解决方案1】:

    问题是,ItemsControl 中的 ContentControl 默认将其大小参数设置为 0,因此,基本上,我的 FrameworkElements 的大小为零。我必须手动指定宽度和高度才能使其可见。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 2018-04-18
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多