c#WPF busyindicator用于新窗口

时间:2014-12-01 08:00:13

标签: c# wpf busyindicator

目前我正在使用WPF功能打开一个新窗口,如下所示:

var sqlConnectionSetting = new SqlConnectionSettingsWnd
{
    Owner = this
};
sqlConnectionSetting.Show();

问题是在这个窗口中我有一个查找可用SQL实例的循环:

string myServer = Environment.MachineName;

DataTable servers = SqlDataSourceEnumerator.Instance.GetDataSources();
for (int i = 0; i < servers.Rows.Count; i++)
{
    if (myServer == servers.Rows[i]["ServerName"].ToString()) ///// used to get the servers in the local machine////
    {
        if ((servers.Rows[i]["InstanceName"] as string) != null)
            localSqlServer.Items.Add(servers.Rows[i]["ServerName"] + "\\" + servers.Rows[i]["InstanceName"]);
        else
            localSqlServer.Items.Add(servers.Rows[i]["ServerName"]);
    }
}      

窗口需要很长时间才能打开。 我想使用BusyIndi​​cator显示一些消息,如“搜索SQL服务器”或类似的东西,但我找不到任何方法(我之前从未编写过XAML ......)有人可以帮我完成这项任务? :)

1 个答案:

答案 0 :(得分:1)

我假设你没有在MVF中使用MVVM和你的代码。

您可以将一些面板放在窗口的中心,并使用一些静态文本进行开始(然后您可以在WPF中研究动画),这将在开始时显示,当您的冗长代码结束时,您将其隐藏起来。

请注意,当您的代码在UI的同一个线程上运行时,您的GUI不会响应。