【问题标题】:Binding Endpoints of a Bezier Segment or Line to other shapes in WPF?将贝塞尔线段或线的端点绑定到 WPF 中的其他形状?
【发布时间】:2025-12-15 20:45:01
【问题描述】:

我正在尝试创建类似 UDK 或 Maya 材质编辑器 http://www.google.com/search?q=udk+material+editor&oe=utf-8&rls=org.mozilla:en-US:official&client=firefox-a&um=1&ie=UTF-8&hl=en&tbm=isch&source=og&sa=N&tab=wi&biw=1144&bih=929 的东西,其中两个节点可以通过单击并将一个连接拖动到另一个连接来连接。 WPF 可以 做到这一点,但我不知道如何以编程方式(使用 C#,而不是 XAML)绑定贝塞尔曲线的端点和控制点以跟随两个节点连接。有使用 WPF 制作的流程图,但没有一个真正有用(尤其是免费的。)

感谢您的帮助。非常非常感谢!

【问题讨论】:

    标签: c# wpf windows xaml bezier


    【解决方案1】:

    最简单的方法是让包含表示端点的数据的对象有一个属性 getter,它返回一个 Geometry(数据的贝塞尔表示)

    然后将 Path 对象的 Data DependencyProperty 绑定到该属性,

    然后当点发生变化时,只需引发一个 PropertyChanged 事件(您的对象需要实现 INotifyPropertyChanged),这将导致绑定被更新,

    这将导致对 Geometry 属性的获取,然后该属性可以返回一个表示对象中当前值的新 Geometry。

    【讨论】:

    • 我会试试这个并在今天晚些时候回复。谢谢。
    • 我最终没有进行绑定,而是重新遍历我的贝塞尔列表并每次重置数据。它可能会或可能不会那么有效,但它更容易。感谢您的帮助:)
    • 我当然也用过这种方法!