Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在WPF应用程序中显示忙条的最佳方法_Wpf - Fatal编程技术网

在WPF应用程序中显示忙条的最佳方法

在WPF应用程序中显示忙条的最佳方法,wpf,Wpf,我有一个WPF应用程序,其中我有一个主窗体,其他用户控件以子窗体的形式显示在主窗体中。当我对数据库进行异步调用时,我必须显示忙条。声明Busy bar对象并在每个子用户控件中使用的最佳方法是什么。我是否需要在主窗体中声明busy bar对象,然后使用它,子用户控件或应用程序文件是最好的,或者有什么好方法。这取决于“busy bar”是显示在其他控件或窗口中的控件,还是其本身的弹出窗口 如果它是控件,则不能(轻松地)在应用程序中的多个位置使用单个控件实例。WPF控件实例是可视化和逻辑树的一部分。它

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

这取决于“busy bar”是显示在其他控件或窗口中的控件,还是其本身的弹出窗口

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


如果它是一个窗口,您可以在应用程序启动时创建它,但将其隐藏。然后,您可以在需要时从代码中显示它(使用show或ShowDialog方法)。也就是说,现在还不清楚你为什么要成为单身汉。创建windows非常便宜,尤其是与通过网络调用数据库相比。同样,声明一个类,并在需要时创建和显示该类的实例,将是更常见的方法。您可以轻松创建一个静态方法来封装“创建绑定-显示-等待-隐藏”循环,以避免细节污染您的应用程序代码。

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

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


如果它是一个窗口,您可以在应用程序启动时创建它,但将其隐藏。然后,您可以在需要时从代码中显示它(使用show或ShowDialog方法)。也就是说,现在还不清楚你为什么要成为单身汉。创建windows非常便宜,尤其是与通过网络调用数据库相比。同样,声明一个类,并在需要时创建和显示该类的实例,将是更常见的方法。您可以轻松创建一个静态方法来封装“创建绑定-显示-等待-隐藏”循环,以避免细节污染应用程序代码。

谢谢您的建议,这真的很有帮助。在我的例子中,我有一个窗口窗体,它被用作忙条,我是否需要在我的主窗体或应用程序文件中声明对象。这是我的问题,在这两种情况下,我如何访问该对象以显示和隐藏在主窗体或应用程序文件中声明的对象,提前感谢如果它是应用程序范围的资源,我将在应用程序级别声明它,例如,作为应用程序类的实例成员,您将在启动重写中初始化它。然后,您可以作为
((App)(Application.Current)).BusyBar
(如前所述,可以将其封装为App类的静态属性或方法)。感谢您的评论,这就是我正在寻找的内容。非常感谢您的建议,这真的很有帮助。在我的例子中,我有一个窗口窗体,它被用作忙条,我是否需要在我的主窗体或应用程序文件中声明对象。这是我的问题,在这两种情况下,我如何访问该对象以显示和隐藏在主窗体或应用程序文件中声明的对象,提前感谢如果它是应用程序范围的资源,我将在应用程序级别声明它,例如,作为应用程序类的实例成员,您将在启动重写中初始化它。然后,您可以通过
((App)(Application.Current)).BusyBar
(如前所述,可以将其封装为App类的静态属性或方法)访问此文件。感谢您的评论,这就是我要查找的内容,非常感谢