예제 #1
0
        public AnimationDrawer()
        {
            InitializeComponent();

            _handler = new AnimatedRepeaterHandler <Animation>(Repeater, ScrollingHost);
            _handler.DownloadFile = DownloadFile;

            _zoomer                = new ZoomableRepeaterHandler(Repeater);
            _zoomer.Opening        = _handler.UnloadVisibleItems;
            _zoomer.Closing        = _handler.ThrottleVisibleItems;
            _zoomer.DownloadFile   = fileId => ViewModel.ProtoService.DownloadFile(fileId, 32);
            _zoomer.GetEmojisAsync = fileId => ViewModel.ProtoService.SendAsync(new GetStickerEmojis(new InputFileId(fileId)));

            ElementCompositionPreview.GetElementVisual(this).Clip = Window.Current.Compositor.CreateInsetClip();

            var shadow = DropShadowEx.Attach(Separator, 20, 0.25f);

            Separator.SizeChanged += (s, args) =>
            {
                shadow.Size = args.NewSize.ToVector2();
            };

            var observable = Observable.FromEventPattern <TextChangedEventArgs>(FieldAnimations, "TextChanged");
            var throttled  = observable.Throttle(TimeSpan.FromMilliseconds(Constants.TypingTimeout)).ObserveOnDispatcher().Subscribe(x =>
            {
                ViewModel.FindAnimations(FieldAnimations.Text);
                //var items = ViewModel.Stickers.SearchStickers;
                //if (items != null && string.Equals(FieldStickers.Text, items.Query))
                //{
                //    await items.LoadMoreItemsAsync(1);
                //    await items.LoadMoreItemsAsync(2);
                //}
            });
        }
예제 #2
0
        public AnimationDrawer()
        {
            InitializeComponent();

            _handler = new AnimatedListHandler(List);

            _zoomer              = new ZoomableListHandler(List);
            _zoomer.Opening      = _handler.UnloadVisibleItems;
            _zoomer.Closing      = _handler.ThrottleVisibleItems;
            _zoomer.DownloadFile = fileId => ViewModel.ProtoService.DownloadFile(fileId, 32);
            _zoomer.SessionId    = () => ViewModel.ProtoService.SessionId;

            ElementCompositionPreview.GetElementVisual(this).Clip = Window.Current.Compositor.CreateInsetClip();

            var header = DropShadowEx.Attach(Separator);

            header.Clip = header.Compositor.CreateInsetClip(0, 48, 0, -48);

            var debouncer = new EventDebouncer <TextChangedEventArgs>(Constants.TypingTimeout, handler => FieldAnimations.TextChanged += new TextChangedEventHandler(handler));

            debouncer.Invoked += (s, args) =>
            {
                ViewModel.Search(FieldAnimations.Text);
            };
        }
예제 #3
0
        public AnimationDrawer()
        {
            InitializeComponent();

            _handler = new AnimatedRepeaterHandler <Animation>(Repeater, ScrollingHost);
            _handler.DownloadFile = DownloadFile;

            // Only for Desktop or Continuum
            if (ApiInfo.IsFullExperience || Windows.UI.ViewManagement.UIViewSettings.GetForCurrentView().UserInteractionMode == Windows.UI.ViewManagement.UserInteractionMode.Mouse)
            {
                _zoomer                = new ZoomableRepeaterHandler(Repeater);
                _zoomer.Opening        = _handler.UnloadVisibleItems;
                _zoomer.Closing        = _handler.ThrottleVisibleItems;
                _zoomer.DownloadFile   = fileId => ViewModel.ProtoService.DownloadFile(fileId, 32);
                _zoomer.GetEmojisAsync = fileId => ViewModel.ProtoService.SendAsync(new GetStickerEmojis(new InputFileId(fileId)));
            }

            ElementCompositionPreview.GetElementVisual(this).Clip = Window.Current.Compositor.CreateInsetClip();

            var shadow = DropShadowEx.Attach(Separator, 20, 0.25f);

            shadow.RelativeSizeAdjustment = Vector2.One;

            var observable = Observable.FromEventPattern <TextChangedEventArgs>(FieldAnimations, "TextChanged");
            var throttled  = observable.Throttle(TimeSpan.FromMilliseconds(Constants.TypingTimeout)).ObserveOnDispatcher().Subscribe(x =>
            {
                ViewModel.FindAnimations(FieldAnimations.Text);
                //var items = ViewModel.Stickers.SearchStickers;
                //if (items != null && string.Equals(FieldStickers.Text, items.Query))
                //{
                //    await items.LoadMoreItemsAsync(1);
                //    await items.LoadMoreItemsAsync(2);
                //}
            });
        }
예제 #4
0
        public StickerDrawer()
        {
            InitializeComponent();

            ElementCompositionPreview.GetElementVisual(this).Clip = Window.Current.Compositor.CreateInsetClip();

            _handler = new AnimatedListHandler <StickerViewModel>(Stickers);
            _handler.DownloadFile = (id, sticker) =>
            {
                DownloadFile(_stickers, id, sticker);
            };

            _zoomer              = new ZoomableListHandler(Stickers);
            _zoomer.Opening      = _handler.UnloadVisibleItems;
            _zoomer.Closing      = _handler.ThrottleVisibleItems;
            _zoomer.DownloadFile = fileId => ViewModel.ProtoService.DownloadFile(fileId, 32);

            //_toolbarHandler = new AnimatedStickerHandler<StickerSetViewModel>(Toolbar);

            var shadow = DropShadowEx.Attach(Separator, 20, 0.25f);

            shadow.RelativeSizeAdjustment = Vector2.One;

            var observable = Observable.FromEventPattern <TextChangedEventArgs>(FieldStickers, "TextChanged");
            var throttled  = observable.Throttle(TimeSpan.FromMilliseconds(Constants.TypingTimeout)).ObserveOnDispatcher().Subscribe(async x =>
            {
                var items = ViewModel.SearchStickers;
                if (items != null && string.Equals(FieldStickers.Text, items.Query))
                {
                    await items.LoadMoreItemsAsync(1);
                    await items.LoadMoreItemsAsync(2);
                }
            });
        }
예제 #5
0
        public EmojiDrawer()
        {
            this.InitializeComponent();

            ElementCompositionPreview.GetElementVisual(this).Clip = Window.Current.Compositor.CreateInsetClip();

            var shadow = DropShadowEx.Attach(Separator, 20, 0.25f);

            shadow.RelativeSizeAdjustment = Vector2.One;

            ToolbarContainer.SizeChanged += (s, args) =>
            {
                if (Toolbar.ItemsPanelRoot is ItemsWrapGrid wrapGrid)
                {
                    wrapGrid.ItemWidth   = Math.Floor(ToolbarContainer.ActualWidth / 10);
                    SkinDefault.Width    = wrapGrid.ItemWidth;
                    SkinDefault.MinWidth = SkinDefault.Width;
                    SkinFitz12.Width     = SkinDefault.Width;
                    SkinFitz12.MinWidth  = SkinDefault.Width;
                    SkinFitz3.Width      = SkinDefault.Width;
                    SkinFitz3.MinWidth   = SkinDefault.Width;
                    SkinFitz4.Width      = SkinDefault.Width;
                    SkinFitz4.MinWidth   = SkinDefault.Width;
                    SkinFitz5.Width      = SkinDefault.Width;
                    SkinFitz5.MinWidth   = SkinDefault.Width;
                    SkinFitz6.Width      = SkinDefault.Width;
                    SkinFitz6.MinWidth   = SkinDefault.Width;
                }
            };

            _typeToItemHashSetMapping["EmojiSkinTemplate"] = new HashSet <SelectorItem>();
            _typeToItemHashSetMapping["EmojiTemplate"]     = new HashSet <SelectorItem>();
        }
예제 #6
0
        public PaymentFormPage()
        {
            InitializeComponent();
            DataContext = TLContainer.Current.Resolve <PaymentFormViewModel>();

            DropShadowEx.Attach(BuyShadow);
        }
예제 #7
0
        public RootPage(NavigationService service)
        {
            if (SettingsService.Current.Appearance.RequestedTheme != ElementTheme.Default)
            {
                RequestedTheme = SettingsService.Current.Appearance.GetCalculatedElementTheme();
            }

            InitializeComponent();

            _lifetime = TLContainer.Current.Lifetime;

            _navigationViewSelected = RootDestination.Chats;
            _navigationViewItems    = new MvxObservableCollection <object>
            {
                //RootDestination.Separator,

                RootDestination.NewChat,
                RootDestination.NewSecretChat,
                RootDestination.NewChannel,

                RootDestination.Separator,

                RootDestination.Chats,
                RootDestination.Contacts,
                RootDestination.Calls,
                RootDestination.Settings,

                //RootDestination.Separator,

                //RootDestination.Wallet,

                RootDestination.Separator,

                RootDestination.SavedMessages,
                RootDestination.News
            };

            NavigationViewList.ItemsSource = _navigationViewItems;

            service.Frame.Navigating += OnNavigating;
            service.Frame.Navigated  += OnNavigated;
            _navigationService        = service;

            InitializeTitleBar();
            InitializeNavigation(service.Frame);
            InitializeLocalization();

            Navigation.Content = _navigationService.Frame;

            var shadow = DropShadowEx.Attach(ThemeShadow, 20, 0.25f);

            ThemeShadow.SizeChanged += (s, args) =>
            {
                shadow.Size = args.NewSize.ToVector2();
            };
        }
예제 #8
0
        public EmojiDrawer()
        {
            this.InitializeComponent();

            ElementCompositionPreview.GetElementVisual(this).Clip = Window.Current.Compositor.CreateInsetClip();

            var shadow = DropShadowEx.Attach(Separator, 20, 0.25f);

            shadow.RelativeSizeAdjustment = Vector2.One;

            _typeToItemHashSetMapping["EmojiSkinTemplate"] = new HashSet <SelectorItem>();
            _typeToItemHashSetMapping["EmojiTemplate"]     = new HashSet <SelectorItem>();
        }
예제 #9
0
        public EmojiDrawer()
        {
            InitializeComponent();

            ElementCompositionPreview.GetElementVisual(this).Clip = Window.Current.Compositor.CreateInsetClip();

            DropShadowEx.Attach(Separator);

            _typeToItemHashSetMapping["EmojiSkinTemplate"] = new HashSet <SelectorItem>();
            _typeToItemHashSetMapping["EmojiTemplate"]     = new HashSet <SelectorItem>();

            UpdateView();
        }
예제 #10
0
        public EmojisView()
        {
            this.InitializeComponent();

            var shadow = DropShadowEx.Attach(Separator, 20, 0.25f);

            Separator.SizeChanged += (s, args) =>
            {
                shadow.Size = args.NewSize.ToVector2();
            };

            _typeToItemHashSetMapping["EmojiSkinTemplate"] = new HashSet <SelectorItem>();
            _typeToItemHashSetMapping["EmojiTemplate"]     = new HashSet <SelectorItem>();
        }
예제 #11
0
        public StickerPanel()
        {
            InitializeComponent();
            DataContext = new object();

            var shadow1 = DropShadowEx.Attach(HeaderSeparator, 20, 0.25f);

            HeaderSeparator.SizeChanged += (s, args) =>
            {
                shadow1.Size = args.NewSize.ToVector2();
            };

            var protoService = TLContainer.Current.Resolve <IProtoService>();

            AnimationsRoot.DataContext           = AnimationDrawerViewModel.GetForCurrentView(protoService.SessionId);
            AnimationsRoot.ItemClick             = Animations_ItemClick;
            AnimationsRoot.ItemContextRequested += (s, args) => AnimationContextRequested?.Invoke(s, args);

            StickersRoot.DataContext           = StickerDrawerViewModel.GetForCurrentView(protoService.SessionId);
            StickersRoot.ItemClick             = Stickers_ItemClick;
            StickersRoot.ItemContextRequested += (s, args) => StickerContextRequested?.Invoke(s, args);

            EmojisRoot.DataContext = StickersRoot.DataContext;

            switch (SettingsService.Current.Stickers.SelectedTab)
            {
            case StickersTab.Emoji:
                Pivot.SelectedIndex = 0;
                break;

            case StickersTab.Animations:
                Pivot.SelectedIndex = 1;
                break;

            case StickersTab.Stickers:
                Pivot.SelectedIndex = 2;
                break;
            }

            if (ApiInformation.IsPropertyPresent("Windows.UI.Xaml.UIElement", "Shadow"))
            {
                var themeShadow = new ThemeShadow();
                BackgroundElement.Shadow       = themeShadow;
                BackgroundElement.Translation += new Vector3(0, 0, 32);

                themeShadow.Receivers.Add(ShadowElement);
            }
        }
예제 #12
0
        public EmojiDrawer()
        {
            this.InitializeComponent();

            ElementCompositionPreview.GetElementVisual(this).Clip = Window.Current.Compositor.CreateInsetClip();

            var shadow = DropShadowEx.Attach(Separator, 20, 0.25f);

            Separator.SizeChanged += (s, args) =>
            {
                shadow.Size = args.NewSize.ToVector2();
            };

            _typeToItemHashSetMapping["EmojiSkinTemplate"] = new HashSet <SelectorItem>();
            _typeToItemHashSetMapping["EmojiTemplate"]     = new HashSet <SelectorItem>();
        }
예제 #13
0
        public StickerPanel()
        {
            InitializeComponent();
            DataContext = new object();

            var shadow = DropShadowEx.Attach(HeaderSeparator, 20, 0.25f);

            shadow.RelativeSizeAdjustment = Vector2.One;

            var protoService = TLContainer.Current.Resolve <IProtoService>();

            AnimationsRoot.DataContext           = AnimationDrawerViewModel.GetForCurrentView(protoService.SessionId);
            AnimationsRoot.ItemClick             = Animations_ItemClick;
            AnimationsRoot.ItemContextRequested += (s, args) => AnimationContextRequested?.Invoke(s, args);

            StickersRoot.DataContext           = StickerDrawerViewModel.GetForCurrentView(protoService.SessionId);
            StickersRoot.ItemClick             = Stickers_ItemClick;
            StickersRoot.ItemContextRequested += (s, args) => StickerContextRequested?.Invoke(s, args);

            EmojisRoot.DataContext = StickersRoot.DataContext;

            switch (SettingsService.Current.Stickers.SelectedTab)
            {
            case StickersTab.Emoji:
                Pivot.SelectedIndex = 0;
                break;

            case StickersTab.Animations:
                Pivot.SelectedIndex = 1;
                break;

            case StickersTab.Stickers:
                Pivot.SelectedIndex = 2;
                break;
            }

            if (ApiInfo.CanUseShadow)
            {
                var themeShadow = new ThemeShadow();
                BackgroundElement.Shadow       = themeShadow;
                BackgroundElement.Translation += new Vector3(0, 0, 32);

                themeShadow.Receivers.Add(ShadowElement);
            }
        }
예제 #14
0
        public RootPage(NavigationService service)
        {
            RequestedTheme = SettingsService.Current.Appearance.GetCalculatedElementTheme();
            InitializeComponent();

            _lifetime = TLContainer.Current.Lifetime;

            _navigationViewSelected = RootDestination.Chats;
            _navigationViewItems    = new MvxObservableCollection <object>
            {
                RootDestination.SavedMessages,
                // ------------
                RootDestination.Separator,
                // ------------
                RootDestination.NewChat,
                RootDestination.NewSecretChat,
                RootDestination.NewChannel,
                // ------------
                RootDestination.Separator,
                // ------------
                RootDestination.Chats,
                RootDestination.Contacts,
                RootDestination.Calls,
                RootDestination.Settings,
                // ------------
                RootDestination.Separator,
                // ------------
                RootDestination.Tips,
                RootDestination.News
            };

            NavigationViewList.ItemsSource = _navigationViewItems;

            service.Frame.Navigating += OnNavigating;
            service.Frame.Navigated  += OnNavigated;
            _navigationService        = service;

            InitializeNavigation(service.Frame);
            InitializeLocalization();

            Navigation.Content = _navigationService.Frame;

            DropShadowEx.Attach(ThemeShadow);
        }
예제 #15
0
        public IntroPage()
        {
            InitializeComponent();

            _layoutVisual = ElementCompositionPreview.GetElementVisual(LayoutRoot);

            _timer          = new DispatcherTimer();
            _timer.Interval = TimeSpan.FromSeconds(3);
            _timer.Tick    += Interact_Tick;

            LayoutRoot.ManipulationMode       = ManipulationModes.TranslateX | ManipulationModes.TranslateRailsX | ManipulationModes.TranslateInertia;
            LayoutRoot.ManipulationStarted   += LayoutRoot_ManipulationStarted;
            LayoutRoot.ManipulationDelta     += LayoutRoot_ManipulationDelta;
            LayoutRoot.ManipulationCompleted += LayoutRoot_ManipulationCompleted;

            SetIndex(_selectedIndex = 0);

            DropShadowEx.Attach(StartShadow);
        }
예제 #16
0
        public StickerDrawer()
        {
            InitializeComponent();

            ElementCompositionPreview.GetElementVisual(this).Clip = Window.Current.Compositor.CreateInsetClip();

            _handler        = new AnimatedListHandler(List);
            _toolbarHandler = new AnimatedListHandler(Toolbar);

            _zoomer              = new ZoomableListHandler(List);
            _zoomer.Opening      = _handler.UnloadVisibleItems;
            _zoomer.Closing      = _handler.ThrottleVisibleItems;
            _zoomer.DownloadFile = fileId => ViewModel.ProtoService.DownloadFile(fileId, 32);
            _zoomer.SessionId    = () => ViewModel.ProtoService.SessionId;

            _typeToItemHashSetMapping.Add("AnimatedItemTemplate", new HashSet <SelectorItem>());
            _typeToItemHashSetMapping.Add("VideoItemTemplate", new HashSet <SelectorItem>());
            _typeToItemHashSetMapping.Add("ItemTemplate", new HashSet <SelectorItem>());

            _typeToTemplateMapping.Add("AnimatedItemTemplate", Resources["AnimatedItemTemplate"] as DataTemplate);
            _typeToTemplateMapping.Add("VideoItemTemplate", Resources["VideoItemTemplate"] as DataTemplate);
            _typeToTemplateMapping.Add("ItemTemplate", Resources["ItemTemplate"] as DataTemplate);

            //_toolbarHandler = new AnimatedStickerHandler<StickerSetViewModel>(Toolbar);

            var header = DropShadowEx.Attach(Separator);

            header.Clip = header.Compositor.CreateInsetClip(0, 48, 0, -48);

            var debouncer = new EventDebouncer <TextChangedEventArgs>(Constants.TypingTimeout, handler => FieldStickers.TextChanged += new TextChangedEventHandler(handler));

            debouncer.Invoked += async(s, args) =>
            {
                var items = ViewModel.SearchStickers;
                if (items != null && string.Equals(FieldStickers.Text, items.Query))
                {
                    await items.LoadMoreItemsAsync(1);

                    await items.LoadMoreItemsAsync(2);
                }
            };
        }
예제 #17
0
        public StickerDrawer()
        {
            InitializeComponent();

            ElementCompositionPreview.GetElementVisual(this).Clip = Window.Current.Compositor.CreateInsetClip();

            _handler = new AnimatedListHandler <StickerViewModel>(Stickers);
            _handler.DownloadFile = (id, sticker) =>
            {
                DownloadFile(_stickers, id, sticker);
            };

            _throttler          = new DispatcherTimer();
            _throttler.Interval = TimeSpan.FromMilliseconds(Constants.AnimatedThrottle);
            _throttler.Tick    += (s, args) =>
            {
                _throttler.Stop();
                _handler.LoadVisibleItems(false);
            };

            //_toolbarHandler = new AnimatedStickerHandler<StickerSetViewModel>(Toolbar);

            var shadow = DropShadowEx.Attach(Separator, 20, 0.25f);

            Separator.SizeChanged += (s, args) =>
            {
                shadow.Size = args.NewSize.ToVector2();
            };

            var observable = Observable.FromEventPattern <TextChangedEventArgs>(FieldStickers, "TextChanged");
            var throttled  = observable.Throttle(TimeSpan.FromMilliseconds(Constants.TypingTimeout)).ObserveOnDispatcher().Subscribe(async x =>
            {
                var items = ViewModel.SearchStickers;
                if (items != null && string.Equals(FieldStickers.Text, items.Query))
                {
                    await items.LoadMoreItemsAsync(1);
                    await items.LoadMoreItemsAsync(2);
                }
            });
        }
예제 #18
0
        public EmojiDrawer()
        {
            InitializeComponent();

            ElementCompositionPreview.GetElementVisual(this).Clip = Window.Current.Compositor.CreateInsetClip();

            var header = DropShadowEx.Attach(Separator);

            header.Clip = header.Compositor.CreateInsetClip(0, 48, 0, -48);

            _handler        = new AnimatedListHandler(List);
            _toolbarHandler = new AnimatedListHandler(Toolbar2);

            _typeToItemHashSetMapping["EmojiSkinTemplate"] = new HashSet <SelectorItem>();
            _typeToItemHashSetMapping["EmojiTemplate"]     = new HashSet <SelectorItem>();
            _typeToItemHashSetMapping.Add("AnimatedItemTemplate", new HashSet <SelectorItem>());
            _typeToItemHashSetMapping.Add("VideoItemTemplate", new HashSet <SelectorItem>());
            _typeToItemHashSetMapping.Add("ItemTemplate", new HashSet <SelectorItem>());
            _typeToItemHashSetMapping.Add("MoreTemplate", new HashSet <SelectorItem>());

            UpdateView();
        }
예제 #19
0
        public StickerPanel()
        {
            InitializeComponent();
            DataContext = new object();

            DropShadowEx.Attach(HeaderSeparator);
            DropShadowEx.Attach(ShadowElement);

            switch (SettingsService.Current.Stickers.SelectedTab)
            {
            case StickersTab.Emoji:
                Pivot.SelectedIndex = 0;
                break;

            case StickersTab.Animations:
                Pivot.SelectedIndex = 1;
                break;

            case StickersTab.Stickers:
                Pivot.SelectedIndex = 2;
                break;
            }
        }
예제 #20
0
        public StickerPanel()
        {
            InitializeComponent();

            var header = DropShadowEx.Attach(HeaderSeparator);
            var shadow = DropShadowEx.Attach(ShadowElement);

            header.Clip = header.Compositor.CreateInsetClip(0, -48, 0, 48);

            switch (SettingsService.Current.Stickers.SelectedTab)
            {
            case StickersTab.Emoji:
                Pivot.SelectedIndex = 0;
                break;

            case StickersTab.Animations:
                Pivot.SelectedIndex = 1;
                break;

            case StickersTab.Stickers:
                Pivot.SelectedIndex = 2;
                break;
            }
        }
예제 #21
0
        public StickersView()
        {
            InitializeComponent();

            var shadow1 = DropShadowEx.Attach(HeaderSeparator, 20, 0.25f);
            var shadow2 = DropShadowEx.Attach(Separator, 20, 0.25f);

            HeaderSeparator.SizeChanged += (s, args) =>
            {
                shadow1.Size = args.NewSize.ToVector2();
            };

            Separator.SizeChanged += (s, args) =>
            {
                shadow2.Size = args.NewSize.ToVector2();
            };

            var observable = Observable.FromEventPattern <TextChangedEventArgs>(FieldStickers, "TextChanged");
            var throttled  = observable.Throttle(TimeSpan.FromMilliseconds(Constants.TypingTimeout)).ObserveOnDispatcher().Subscribe(async x =>
            {
                var items = ViewModel.Stickers.SearchStickers;
                if (items != null && string.Equals(FieldStickers.Text, items.Query))
                {
                    await items.LoadMoreItemsAsync(1);
                    await items.LoadMoreItemsAsync(2);
                }
            });

            var observable2 = Observable.FromEventPattern <TextChangedEventArgs>(FieldAnimations, "TextChanged");
            var throttled2  = observable2.Throttle(TimeSpan.FromMilliseconds(Constants.TypingTimeout)).ObserveOnDispatcher().Subscribe(x =>
            {
                ViewModel.Stickers.FindAnimations(FieldAnimations.Text);
                //var items = ViewModel.Stickers.SearchStickers;
                //if (items != null && string.Equals(FieldStickers.Text, items.Query))
                //{
                //    await items.LoadMoreItemsAsync(1);
                //    await items.LoadMoreItemsAsync(2);
                //}
            });

            switch (SettingsService.Current.Stickers.SelectedTab)
            {
            case Services.Settings.StickersTab.Emoji:
                Pivot.SelectedIndex = 0;
                break;

            case Services.Settings.StickersTab.Animations:
                Pivot.SelectedIndex = 1;
                break;

            case Services.Settings.StickersTab.Stickers:
                Pivot.SelectedIndex = 2;
                break;
            }

            if (ApiInformation.IsPropertyPresent("Windows.UI.Xaml.UIElement", "Shadow"))
            {
                var themeShadow = new ThemeShadow();
                BackgroundElement.Shadow       = themeShadow;
                BackgroundElement.Translation += new Vector3(0, 0, 32);

                themeShadow.Receivers.Add(ShadowElement);
            }
        }
예제 #22
0
 private void PurchaseShadow_Loaded(object sender, RoutedEventArgs e)
 {
     DropShadowEx.Attach(PurchaseShadow);
 }
예제 #23
0
        public VoIPPage(IProtoService protoService, ICacheService cacheService, IEventAggregator aggregator, IVoipService voipService)
        {
            InitializeComponent();

            _protoService = protoService;
            _cacheService = cacheService;
            _aggregator   = aggregator;

            _service = voipService;

            _durationTimer          = new DispatcherTimer();
            _durationTimer.Interval = TimeSpan.FromMilliseconds(500);
            _durationTimer.Tick    += DurationTimer_Tick;

            _debugTimer          = new DispatcherTimer();
            _debugTimer.Interval = TimeSpan.FromMilliseconds(500);
            _debugTimer.Tick    += DebugTimer_Tick;

            #region Reset

            LargeEmoji0.Source = null;
            LargeEmoji1.Source = null;
            LargeEmoji2.Source = null;
            LargeEmoji3.Source = null;

            #endregion

            #region Composition

            _descriptionVisual = ElementCompositionPreview.GetElementVisual(DescriptionLabel);
            _largeVisual       = ElementCompositionPreview.GetElementVisual(LargePanel);
            _compositor        = _largeVisual.Compositor;

            var graphicsEffect = new GaussianBlurEffect
            {
                Name       = "Blur",
                BlurAmount = 0,
                BorderMode = EffectBorderMode.Hard,
                Source     = new CompositionEffectSourceParameter("backdrop")
            };

            var effectFactory = _compositor.CreateEffectFactory(graphicsEffect, new[] { "Blur.BlurAmount" });
            var effectBrush   = effectFactory.CreateBrush();
            var backdrop      = _compositor.CreateBackdropBrush();
            effectBrush.SetSourceParameter("backdrop", backdrop);

            _blurBrush        = effectBrush;
            _blurVisual       = _compositor.CreateSpriteVisual();
            _blurVisual.Brush = _blurBrush;

            // Why does this crashes due to an access violation exception on certain devices?
            ElementCompositionPreview.SetElementChildVisual(BlurPanel, _blurVisual);

            var viewfinder = DropShadowEx.Attach(ViewfinderShadow, 20, 0.25f);
            viewfinder.RelativeSizeAdjustment = Vector2.One;

            #endregion

            //var titleBar = ApplicationView.GetForCurrentView().TitleBar;
            //titleBar.ButtonBackgroundColor = Colors.Transparent;
            //titleBar.ButtonForegroundColor = Colors.White;
            //titleBar.ButtonInactiveBackgroundColor = Colors.Transparent;
            //titleBar.ButtonInactiveForegroundColor = Colors.White;

            //Window.Current.SetTitleBar(BlurPanel);

            if (voipService.Call != null)
            {
                Update(voipService.Call, voipService.CallStarted);
            }

            if (voipService.Manager != null)
            {
                Connect(voipService.Manager);
            }

            Connect(voipService.Capturer);

            _viewfinder = ElementCompositionPreview.GetElementVisual(ViewfinderPanel);

            ViewfinderPanel.PointerPressed  += Viewfinder_PointerPressed;
            ViewfinderPanel.PointerMoved    += Viewfinder_PointerMoved;
            ViewfinderPanel.PointerReleased += Viewfinder_PointerReleased;
        }
예제 #24
0
        public PaymentFormPage()
        {
            InitializeComponent();

            DropShadowEx.Attach(BuyShadow);
        }