【问题标题】:Expose inner controls in wpf在 wpf 中公开内部控件
【发布时间】:2016-03-23 09:02:42
【问题描述】:

在 wpf 中,ListBox 有一个 ScrollViewer 属性,智能感知用“括号”图标显示它:

它允许您浏览其内部属性:

在我的自定义控件中,我想公开一个内部 ListBox,因此我创建了一个 ListBox 类型的依赖项属性。 结果是一个“ListBox”属性,该属性显示在智能感知中,带有一个“扳手”图标和不可导航的内部属性。

如何模仿 ListBox 控件对 ScrollViewer 的作用?

【问题讨论】:

  • 在发布此问题之前,我查看了如何在 referencesource.microsoft.com 上对 ListBox 进行编码。我没有看到任何内在类型。我不认为这个问题与您链接的问题重复。

标签: wpf xaml


【解决方案1】:

ScrollViewer 是一个具有这三个附加属性的 ContentControl

  • CanContentScroll
  • Horizo​​ntalScrollBarVisibility
  • VerticalScrollBarVisibility

所以这里 ListBox 将这些附加属性设置在 ScrollViewer 公开的自身上,并且只能这样设置附加属性。

您的情况不同,您想直接在父控件上设置/绑定子控件的属性,这不是最好的方法。相反,您可以将希望您的孩子绑定到的属性公开为自定义控件上的依赖属性,并在内部将孩子绑定到这些属性。这样当你在自定义控件上改变这些属性时,child也会随之更新。

【讨论】:

  • 您能否为您描述的第一个案例提供一个示例?我想尝试一下,但我有点迷茫
  • 列表框如何自己设置这些附加属性?
猜你喜欢
  • 2011-05-09
  • 2015-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-08
  • 1970-01-01
  • 2011-02-09
相关资源
最近更新 更多