У меня возникла какая-то странная проблема, которую я не могу объяснить себе (следовательно, исправлю):
В моем приложении C # у меня есть 3 WPF Windows, которые будут появляться при вызове. Конечно, все эти окна WPF имеют метод InitializeComponent()
.
Я также создал SplashWindow
пользовательский класс, в котором я определяю универсальное окно SplashScreen. Требуя объект Uri
в качестве входных данных, появится всплывающее окно с изображением, относящимся к этому Uri, а затем закроется, когда вызывается метод закрытия. Изображение, которое я использую для заставки, загружается в мое решение в папку с именем Resources , а для Build Action установлено значение SplashScreen .
Вот код:
class SplashWindow
{
private Form form = null;
public SplashWindow(Uri uri)
{
form = new Form();
StreamResourceInfo info = System.Windows.Application.GetResourceStream(uri);
Image splashImage = Image.FromStream(info.Stream);
// Get image dimensions
form.Width = splashImage.Width;
form.Height = splashImage.Height;
form.BackgroundImage = splashImage;
form.BackgroundImageLayout = ImageLayout.Stretch;
form.StartPosition = FormStartPosition.CenterScreen;
form.FormBorderStyle = FormBorderStyle.None;
form.TopMost = true;
form.Show();
}
internal void CloseSplash()
{
form.Close();
}
}
И я вызываю этот объект заставки один раз в моем коде примерно так:
// Start async to get user
Task<User> getUser = GitHubConnection.LoginAsync(tok);
// Pop up splash screen in the meantime
SplashWindow splash = new SplashWindow(validationUri);
// Await for user
User user = await getUser;
// Close splash screen
splash.CloseSplash();
И это прекрасно работает!
Проблема, с которой я сталкиваюсь , заключается в том, что если я попытаюсь добавить другое изображение в свое решение и установить для параметра «Действия при построении» значение SplashScreen для недавно обновленного изображения, то все методы InitializeComponent()
во ВСЕХ моих Окна WPF начинают выдавать ошибку CS0103: The name InitializeComponent does not exist in current context
. Так что я не могу использовать более одного заставки, но для меня это не имеет никакого смысла.
Есть идеи, почему это происходит? Что мне не хватает?