gpt4 book ai didi

c# - 在不触发事件的情况下设置 WPF 依赖属性

转载 作者:行者123 更新时间:2023-11-30 19:14:37 25 4
gpt4 key购买 nike

我需要在我的代码中设置控件 (Slider.Value) 的依赖属性,而不触发 ValueChanged 事件(因为我设置了值,而不是用户)。在 WPF 中处理这种情况的最佳方法是什么?

为澄清起见,我要做的是将 WPF slider 连接到 WinForms 用户控件。目前在我的应用程序中,我有一个 ValueChanged 事件处理程序,它通过方法调用将 slider 值传递给 WinForms 控件。 WinForms 控件(实际上是原生 OpenGL 窗口的包装器)需要能够根据其内部计算动态更改 slider 。为此,我使用 slider (ISlider) 的抽象,在我的应用程序中实例化该 slider 的 WPF 风格,并通过 WinForms 用户控件上的 .NET 属性将其基础的句柄传递给 WinForms 控件。所有这一切目前都在工作,只是当内部逻辑决定 slider 需要更改时,它调用 ISlider::SetPos(),然后更改 WPF slider ,然后触发 slider 上的 ValueChanged 事件,以及处理程序对于该事件,提取 slider 的位置并将其传递给首先发起该事件的 WinForms 控件。 ligaz 和 Alan Le 的建议似乎都应该奏效,但我不确定我是否以最佳方式解决这个问题。

最佳答案

这是一个简单的解决方法/技巧。添加一个 bool 值来跟踪您是否更改了设置,比方说“IsChangedByMe”。当您更改代码中的依赖属性时,将 bool 设置为 true。在 ValueChanged 事件中,如果 IsChangedByMe 为真,则不执行任何操作。

关于c# - 在不触发事件的情况下设置 WPF 依赖属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/154184/

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