【问题标题】:wpf c#: window, page and eventswpf c#:窗口、页面和事件
【发布时间】:2013-07-23 13:26:55
【问题描述】:

在我的基于 C# 的 WPF 项目中,我有一个带有画布的窗口、一个带有一些元素的树视图和一个框架。框架用于包含一个页面,该页面根据所选的树视图元素进行更改。 在页面中,我有一些文本框,我可以在其中写入双精度值。

即如果我选择树的第一个元素,加载的页面是Page1,其中有2个文本框,如果我选择第二个,加载的页面是Page2,其中有3个文本框。

我需要这样,在文本框中更改值后,我可以在画布上进行一些操作,即如果我写一个值,画布中的一条线会沿某个方向移动该值。 要管理的事件存在于 Page 类中,但 Canvas 位于 Window 类中。那么如何从 Window 类之外管理画布呢? 或者我需要更改 Window 的布局并且不使用 Frame 来包含带有文本框的页面? 有什么建议吗?

谢谢

【问题讨论】:

    标签: c# wpf events window


    【解决方案1】:

    有几个选项取决于您的设置。

    1. 您可以将事件从 Page 类内部一直冒泡到您的 Window。
    2. 您可以在创建 Canvas 对象时将其传递给 Page 类。
    3. 如果您使用 MVVM 或类似的东西,您可以使用大多数 MVVM 工具包中提供的消息传递框架。
    4. 我敢肯定,还有很多其他选项可供人们使用。

    就我个人而言,我最喜欢 3,但如果你还不熟悉 MVVM 和工具包,那对你来说可能有点过头了。

    【讨论】:

    • 我从未使用过 MVVM 及其工具包...现在我认为我的项目如此之大以至于要更改其开发架构...您如何看待更改 Window 架构、删除框架和使用其他一些技术来拥有一个带有 n 个文本框的动态部分?
    • @FrancescoDS 为什么不只是 2 将 Canvas 对象传递给 Page?
    • 如果我将画布传递到页面,我是否也需要将绘图方法移动到页面?在我将画布放入页面之前,但我将其移出,因为我需要根据窗口调整大小来管理画布的自动调整大小。所以我不知道创建这种窗口的最佳实践是什么
    猜你喜欢
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 2016-10-24
    • 2021-12-08
    相关资源
    最近更新 更多