コード例 #1
0
        public PopupBanner(PopupBannerData data)
        {
            InitializeComponent();

            DataContext = _data = data;
            SetupIcon();
        }
コード例 #2
0
        /// <summary>
        /// Is run after window is loaded and checks connection.
        /// Displays currently playing track.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// TODO: add ability to refresh player after connection failiure
        private async void Window_Loaded(object sender, RoutedEventArgs e)
        {
            // check if API is usable
            var apiAccess = await _apiClient.CheckApiAccess();

            if (!apiAccess)
            {
                // if not, try fallback API (XML)
                var fallback       = new ApiClient();
                var fallbackAccess = await _apiClient.CheckApiAccess();

                // if this fails, display an error message (banner)
                if (!fallbackAccess)
                {
                    var bannerData = new PopupBannerData()
                    {
                        Closable    = false,
                        Level       = PopupLevel.Error,
                        CloseAction = ClosePopupBanner
                    };

                    bannerData.Message = "Could not connect to the API";

                    _messageBanner = new PopupBanner(bannerData);

                    _messageBanner.Height            = 40;
                    _messageBanner.VerticalAlignment = VerticalAlignment.Top;
                    _messageBanner.Effect            = new DropShadowEffect()
                    {
                        BlurRadius = 20, Direction = -180
                    };
                    _messageBanner.Name    = "MessageBanner";
                    _messageBanner.Opacity = 0.0;

                    this.MainContent.Children.Add(_messageBanner);

                    Storyboard sb = this.FindResource("FadeInMessageBanner") as Storyboard;
                    Storyboard.SetTarget(sb, _messageBanner);
                    sb.Begin();
                    HideSongInfo();
                }
                else
                {
                    _apiClient = fallback;
                }
            }
            else
            {
                UpdateSong();
            }


            _mediaKeyHook = new MediaKeyHook();
            _mediaKeyHook.Subscribe(this);
        }