【问题标题】:Best Way to show Busy Bar In WPF Application在 WPF 应用程序中显示忙栏的最佳方式
【发布时间】:2010-03-11 06:13:28
【问题描述】:

我有 WPF 应用程序,其中我有一个主窗体,其他用户控件在主窗体中显示为子窗体。当我对数据库进行异步调用时,我必须显示忙碌栏。声明 Busy bar 对象然后在每个子用户控件中使用的最佳方法是什么。是否需要在主窗体中声明busy bar对象,然后使用子用户控件或App文件最好,或者有什么好的方法。

【问题讨论】:

    标签: wpf


    【解决方案1】:

    这取决于您的“忙碌栏”是显示在其他控件或窗口中的控件,还是其本身的弹出窗口。

    如果它是一个控件,则不能(轻松)在应用程序的多个位置使用单个控件实例。 WPF 控件实例是可视化和逻辑树的一部分。它不能是两个视觉树的一部分。你可以创建一个 BusyBar 控件class,并在你需要的不同地方声明它的多个instances:为此,使用 User Visual Studio 中的控件 (WPF) 或自定义控件 (WPF) 模板。

    如果它是一个窗口,您可以在应用程序启动时创建它,但将其隐藏。然后,您可以在需要时从代码中显示它(使用 Show 或 ShowDialog 方法)。也就是说,尚不清楚为什么无论如何您都需要将其作为单身人士。创建窗口很便宜,尤其是与通过网络调用数据库相比。同样,声明一个类,并在需要时创建和显示该类的实例,这将是更常用的方法。您可以轻松创建一个静态方法来封装“create-bind-show-wait-hide”循环,以免细节污染您的应用代码。

    【讨论】:

    • 感谢您的建议,真的很有帮助。在我的情况下,我有用作繁忙栏的窗口窗体,我需要在我的主窗体或 App 文件中声明对象吗?这是我的问题,在这两种情况下,我如何访问该对象以显示和隐藏在主表单或应用程序文件中声明的对象,感谢提前
    • 如果它是应用程序范围的资源,我会在应用程序级别声明它,例如作为您将在 OnStartup 覆盖中初始化的 App 类的实例成员。然后,您可以以 ((App)(Application.Current)).BusyBar 的身份访问它(并且如上所述可以将其封装为 App 类的静态属性或方法)。
    • 谢谢你们,这就是我要找的,非常感谢
    猜你喜欢
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    相关资源
    最近更新 更多