Example #1
0
        public MainWindow(IMModels.LoginUser login)
        {
            InitializeComponent();

            this.GotFocus         += MainWindow_GotFocus;
            this.Activated        += MainWindow_Activated;
            this.Unloaded         += MainWindow_Unloaded;
            this.PreviewMouseDown += MainWindow_MouseDown;

            _mainMV                         = new MainViewModel(this, login);
            this.DataContext                = ViewModel = _mainMV;
            _mainMV.MainTitle               = login.User.PhoneNumber;
            _mainMV.OnExpandGroupList      += _mainMV_OnExpandGroupList;
            _mainMV.OnForceOffline         += _mainMV_OnForceOffline;
            _mainMV.OnChangeTrayWindowSize += _mainMV_OnChangeTrayWindowSize;
            _mainMV.OnCloseTrayWindow      += _mainMV_OnCloseTrayWindow;
            _mainMV.OnCloseAppendWindow    += _mainMV_OnCloseAppendWindow;
            //初始化基本数据
            _mainMV.ChatListVM                           = new ChatListView().ViewModel as ChatListViewModel;
            _mainMV.ChatListVM.OnFlashIcon              += ChatListVM_OnFlashIcon;
            _mainMV.ChatListVM.OnCloseTrayWindow        += ChatListVM_OnCloseTrayWindow;
            _mainMV.FriendListVM                         = new FriendListView().ViewModel as FriendListViewModel;
            _mainMV.GroupListVM                          = new GroupListView().ViewModel as GroupListViewModel;
            _mainMV.AttentionListVM                      = new AttentionListView().ViewModel as AttentionListViewModel;
            _mainMV.SearchUserListVM                     = new UserSearchListView().ViewModel as UserSearchListViewModel;
            _mainMV.SettingListVM                        = new SettingListView().ViewModel as SettingListViewModel;
            _mainMV.FriendListVM.SearchChatListViewModel = _mainMV.ChatListVM;
            _mainMV.BlacklistVM                          = new BlacklistViewModel(new BlacklistModel());

            _mainMV.ChatListVM.StrangerMessage.View = new StrangerMessageView();
            _mainMV.ChatListVM.OnSelectedItemEvent += ChatListVM_OnSelectedItemEvent;
            FriendListViewModel.NewFriend.View      = new FriendNewApplyView();
            SettingListViewModel.CommonSetting.View = new CommonSettingView();
            SettingListViewModel.Privacy.View       = new PrivacyView();
            SettingListViewModel.HelpCenter.View    = new HelpCenterView();
            SettingListViewModel.FeedBack.View      = new FeedBackView();

            AppData.Current.InitializeDatasAsync();


            _mainMV.NaviCommand.Execute(_mainMV.ChatListVM);

            AppendInitialize();
            _mainMV.ShowTip += (tip) => { Views.MessageTip.ShowTip(tip); };



            this.Loaded          += MainWindow_Loaded;
            this.LocationChanged += MainWindow_LocationChanged;
            this.SizeChanged     += MainWindow_SizeChanged;
        }
Example #2
0
        public MainWindow(IMModels.LoginUser login)
        {
            InitializeComponent();
            UItaskScheduler        = TaskScheduler.FromCurrentSynchronizationContext();
            this.GotFocus         += MainWindow_GotFocus;
            this.Activated        += MainWindow_Activated;
            this.PreviewMouseDown += MainWindow_MouseDown;

            _mainMV           = new MainViewModel(this, login);
            _mainMV.MainTitle = login.User.PhoneNumber;

            _mainMV.OnForceOffline         += _mainMV_OnForceOffline;
            _mainMV.OnChangeTrayWindowSize += _mainMV_OnChangeTrayWindowSize;
            _mainMV.OnCloseTrayWindow      += _mainMV_OnCloseTrayWindow;
            //初始化基本数据
            _mainMV.ChatListVM                    = new ChatListView().ViewModel as ChatListViewModel;
            _mainMV.ChatListVM.OnFlashIcon       += ChatListVM_OnFlashIcon;
            _mainMV.ChatListVM.GotWindowIsActive += ChatListVM_GotWindowIsActive;
            _mainMV.ChatListVM.OnCloseTrayWindow += ChatListVM_OnCloseTrayWindow;

            _mainMV.HisChatListVM     = new TempChatListView().ViewModel as TempChatListViewModel;
            _mainMV.ChatHistoryListVM = new HistoryChatListView().ViewModel as HistoryChatListViewModel;
            // _mainMV.HisChatListVM.GotWindowIsActive += ChatListVM_GotWindowIsActive;
            // _mainMV.HisChatListVM.OnCloseTrayWindow += ChatListVM_OnCloseTrayWindow;

            _mainMV.SettingListVM = new SettingListView().ViewModel as SettingListViewModel;
            Task.Run(async() =>
            {
                _mainMV.CommonReply   = await SDKClient.SDKClient.Instance.GetQuickReplycontext(1);
                _mainMV.PersonalReply = await SDKClient.SDKClient.Instance.GetQuickReplycontext(2);
            }).ContinueWith(t =>
            {
                _mainMV.SettingListVM.LoadDatas();
            }, UItaskScheduler);



            AppData.Current.InitializeDatas();

            this.DataContext = ViewModel = _mainMV;
            _mainMV.NaviCommand.Execute(_mainMV.ChatListVM);

            AppendInitialize();
            _mainMV.ShowTip += (tip) => { Views.MessageTip.ShowTip(tip); };
        }
Example #3
0
        private void LoginViewModel_OnLoginSuccess(IMModels.LoginUser login)
        {
            var loginWin   = this.MainWindow;
            var mainWindow = new MainWindow(login);

            this.MainWindow                    = mainWindow;
            mainWindow.Closed                 += MainWindow_Closed;
            mainWindow.Closing                += MainWindow_Closing;
            mainWindow.OnFlashIcon            += MainWindow_OnFlashIcon;
            mainWindow.OnCloseTrayWindow      += MainWindow_OnCloseTrayWindow;
            mainWindow.OnChangeTrayWindowSize += MainWindow_OnChangeTrayWindowSize;
            mainWindow.Show();
            loginWin.Close();

            _trayIcon.Icon = _appIcon = new System.Drawing.Icon(LogoIcon);
            ModifyTrayIcon();
            _trayIcon.Text           = $"可访\r\n{login.User.Name}({login.User.PhoneNumber})";
            _iconFlashTimer          = new DispatcherTimer();
            _iconFlashTimer.Interval = TimeSpan.FromSeconds(0.4);
            _iconFlashTimer.Tick    += _iconFlashTimer_Tick;
        }