Я верю, лучше использовать несколько UpdatePanel, если Вы можете из-за размера POST, который генерирует UpdatePanel. Еще лучше, если можно использовать ручные подходы Ajax для мелочей как обновление поля. WPF обеспечивает некоторые функции JavaScript и методы для выполнения этого. Вот некоторая ссылка, которая может быть полезной:
Отредактируйте Application.xaml, удалите StartUpUri, вместо этого установите обработчик событий StartUp. В Application.xaml.cs отредактируйте обработчик событий запуска, чтобы отобразить экран-заставку, загрузите ресурсы, создайте все, затем создайте главное окно и покажите его.
<Application
...
StartUp="OnStartUp"
/>
И:
private void OnStartUp(Object sender, StartupEventArgs e)
{
var settings = LoadSettingsFrom... // Call your implementation of load user settings
// Example only, in real app do this if's section on a different thread
if (settings.doShowSplashScreen)
{
var splashScreen = new SplashScreen();
splashScreen.Show();
}
// Load and create stuff (resources, databases, main classes, ...)
var mainWindow = new mainWindow();
mainWindow.ApplySettings(settings); // Call your implementation of apply settings
if (doShowSplashScreen)
{
// send close signal to splash screen's thread
}
mainWindow.Show(); // Show the main window
}
Существуют функции BeginInit и EndInit, если вы измените свойства внутри этих функций, например ..
BeginInit();
...
... // Do your code Initialization here...
...
EndInit();
, ваше окно не будет отображаться до тех пор, пока EndInit ( ) называется, мерцать не будет.
Когда происходит эта загрузка? Код, выполняемый в конструкторе главного Window
, должен выполняться до того, как окно будет показано; если вы загрузите туда необходимые ресурсы, вы не увидите мерцания.