для заставки вы просто добавите новый элемент / заставку.файл .png будет добавлен в ваш проект, вы можете редактировать его или заменить его другим файлом .png с тем же именем.
для экрана входа в систему, ShowDialog () в главном окнеконструктор viewmodel, затем обрабатывает событие закрытия окна входа в систему, чтобы закрыть приложение, если пользователь не подтвержден, и просто закрыть, если пользователь подтвердил (я использую статический класс для сохранения глобальных значений, таких как идентификатор пользователя, зависит от него).выберите, выключить ли приложение или разрешить его загрузку), это зависит от того, как можно реализовать методы ShowDialog () и Close () в viewModel, я полагаю, вы уже поняли это, см. эту модель представления моего окна входа в систему
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Input;
using GlassStoreBLL;
using System.Windows;
namespace GlassStore.ViewModels
{
class LoginViewModel:ViewModelBase
{
private String _UserName;
private String _Password;
private String _richMessage;
private Commands.RelayCommand _login;
private Commands.RelayCommand _closing;
private IDialogueService _dialogService;
private String _errorMessage;
public LoginViewModel() : this(new DialogueService()) { }
public LoginViewModel(IDialogueService dialogueService)
{
_dialogService = dialogueService;
GlobalClass.userID = 0;
}
public String richMessage
{
get { return _richMessage; }
set
{
if (_richMessage != value)
{
_richMessage = value;
OnPropertyChanged("richMessage");
}
}
}
public String Password
{
get { return _Password; }
set
{
if (_Password != value)
{
_Password = value;
OnPropertyChanged("Password");
}
}
}
public String UserName
{
get { return _UserName; }
set
{
if (_UserName != value)
{
_UserName = value;
OnPropertyChanged("UserName");
}
}
}
public String errorMessage
{
get { return _errorMessage; }
set
{
if (_errorMessage != value)
{
_errorMessage = value;
OnPropertyChanged("errorMessage");
}
}
}
public ICommand login
{
get
{
if (_login == null)
{
_login = new Commands.RelayCommand(param => CanLogin(), param => Login());
}
return _login;
}
}
public ICommand closing
{
get
{
if (_closing == null)
{
_closing = new Commands.RelayCommand(param => CanClosing(), param => Closing());
}
return _closing;
}
}
private bool CanClosing()
{
return true;
}
private void Closing()
{
if (GlobalClass.userID == 0)
{
Application.Current.Shutdown();
}
else
{
}
}
private bool CanLogin()
{
return !String.IsNullOrEmpty(UserName) && !String.IsNullOrEmpty(Password);
}
private void Login()
{
try
{
User usr1 = new User();
usr1 = usr1.userExists(UserName, Password);
if (usr1.id == 0)
{
errorMessage = "اسم المستخدم أو كلمة السر أو الاثنان خطأ";
}
else
{
GlobalClass.userID = usr1.id;
if (usr1.manager == "true")
{
GlobalClass.manager = true;
}
else
{
GlobalClass.manager = true;
}
var windows = Application.Current.Windows;
for (var i = 0; i < windows.Count; i++)
{
if (windows[i].DataContext == this)
_dialogService.Close(windows[i]);
}
}
}
catch (Exception d)
{
errorMessage = "خـطـأ";
richMessage = d.Message;
}
}
}
}