【发布时间】:2008-09-30 17:49:05
【问题描述】:
我需要在我的代码中为控件 (Slider.Value) 设置依赖属性,而不触发 ValueChanged 事件(因为我设置了值,而不是用户)。在 WPF 中处理这种情况的最佳方法是什么?
为了澄清,我想要做的是将 WPF 滑块连接到 WinForms 用户控件。目前在我的应用程序中,我有一个 ValueChanged 事件处理程序,它通过方法调用将滑块值传递给 WinForms 控件。 WinForms 控件(实际上是原生 OpenGL 窗口的包装器)需要能够根据其内部计算动态更改滑块。为此,我使用了一个滑块 (ISlider) 的抽象,我在我的应用程序中实例化了该滑块的 WPF 风格,并通过 WinForms 用户控件上的 .NET 属性将一个句柄传递给 WinForms 控件。所有这些目前都在工作,只是当内部逻辑决定滑块需要更改时,它调用 ISlider::SetPos(),然后更改 WPF 滑块,然后在滑块上触发 ValueChanged 事件,以及处理程序对于该事件,提取滑块的位置并将其传递给最初发起该事件的 WinForms 控件。 ligaz 和 Alan Le 的建议似乎都应该奏效,但我不确定我是否会以最好的方式解决这个问题。
【问题讨论】:
标签: c# wpf events dependency-properties