Exemplo n.º 1
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            Message.Initialize(typeof(AddCharacterMessage).GetTypeInfo().Assembly);
            Server = new NetworkClient(((ClientPageParameters)e.Parameter).Hostname, 5000,

                                       new DelegateMessageProcessingModule <AddCharacterMessage>((message, server) => PlayBoard.AddCharacter(message.NewCharacter)),
                                       new DelegateMessageProcessingModule <MoveCharacterMessage>((message, server) => PlayBoard.MoveCharacter(message.TargetCharacter)),
                                       new DelegateMessageProcessingModule <RemoveCharacterMessage>((message, server) => PlayBoard.RemoveCharacter(message.OldCharacter)),
                                       new DelegateMessageProcessingModule <BoardLinesMessage>(async(message, server) =>
            {
                await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async() =>
                {
                    MemoryStream Buffer = new MemoryStream(message.Data);
                    await PlayBoard.GetDrawCanvas().InkPresenter.StrokeContainer.LoadAsync(Buffer.AsInputStream());
                });
            }),
                                       new DelegateMessageProcessingModule <CameraMovedMessage>((message, server) => PlayBoard.SetCamera(message.HorizontalOffset, message.VerticalOffset, message.ZoomFactor)),
                                       new DelegateMessageProcessingModule <FreezeMessage>(async(message, server) =>
            {
                await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    if (message.Freeze)
                    {
                        FreezeBoard();
                    }
                    else
                    {
                        UnFreezeBoard();
                    }
                });
            })
                                       );

            PlayBoard.GetDrawCanvas().InkPresenter.InputDeviceTypes = CoreInputDeviceTypes.None;
            PlayBoard.ScrollbarsVisible = false;
        }