Lee Wilkins
Published © GPL3+

Raspberry Pi Alarm Clock

A UWP C# clock and digital radio, using a touchscreen interface.

BeginnerWork in progress4,571
Raspberry Pi Alarm Clock

Things used in this project

Story

Read more

Code

MainPage.xaml

XML
Main page for the clock. This is an update. 4/29/17
<Page
    x:Class="Radio_Lab.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Radio_Lab"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <Page.Resources>
    </Page.Resources>
    <Canvas x:Name="canvas" Width="800" Height="500" Style="{StaticResource BackgroundElement}" >
        <RelativePanel>
            <StackPanel Orientation="Horizontal">
                <Button x:Name="MenuFlyoutButton" Content="Menu" Style="{StaticResource menu_button_selected}" >
                    <Button.Flyout>
                        <MenuFlyout>
                            <MenuFlyoutItem Text="Clock" Foreground="Black">
                            </MenuFlyoutItem>
                            <MenuFlyoutItem Text="Alarm" Foreground="Black">
                            </MenuFlyoutItem>
                            <MenuFlyoutItem Text="Streaming Radio" Foreground="Black">
                            </MenuFlyoutItem>
                            <MenuFlyoutItem Text="Local Media Playback" Foreground="Black">
                            </MenuFlyoutItem>
                            <MenuFlyoutItem Text="Streaming Radio" Foreground="Black">
                            </MenuFlyoutItem>
                            <MenuFlyoutItem Text="Navigation" Foreground="Black">
                            </MenuFlyoutItem>

                        </MenuFlyout>
                    </Button.Flyout>
                </Button>
                <Button x:Name="_btn_Clock" Content="Clock" HorizontalAlignment="Left" VerticalAlignment="Top" Click="_btn_Clock_Click" Style="{StaticResource menu_button}" >
                </Button>
                <Button x:Name="_btn_Alarm" Content="Alarms" HorizontalAlignment="Left" VerticalAlignment="Top"  Click="_btn_Alarm_Click" Style="{StaticResource menu_button}"  >
                </Button>
                <Button x:Name="_btn_Local" Content="MyMedia" HorizontalAlignment="Left" VerticalAlignment="Top" Click="_btn_Local_Click" Style="{StaticResource menu_button}"  >
                </Button>
                <Button x:Name="_btn_Stream" Content="Stream" HorizontalAlignment="Left" VerticalAlignment="Top"  Click="_btn_Stream_Click" Style="{StaticResource menu_button}"  >
                </Button>
                <Button x:Name="_btn_Video" Content="Video" HorizontalAlignment="Left" VerticalAlignment="Top" Click="_btn_Video_Click" Style="{StaticResource menu_button}"  >
                </Button>
            </StackPanel>
        </RelativePanel>
    </Canvas>
</Page>

MainPage.xaml.cs

C#
This is an update. This page references a collection of album covers that had been downloaded from google. update 4/29
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Storage;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using System.Collections.ObjectModel;
using Windows.UI.Xaml.Shapes;
using Windows.UI.Core;
using Windows.Devices.Input;
using Windows.UI.Xaml.Media.Imaging;
using Windows.Storage.Streams;
using Windows.System.Threading;

// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
namespace Radio_Lab
{

    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class MainPage : Page
    {
        
        ObservableCollection<DigiRadios> datalist = new ObservableCollection<DigiRadios>();
        ObservableCollection<DigiRadios> finallist = new ObservableCollection<DigiRadios>();
        const int AS = 26;
        string[] stationId = new string[AS];
        string[] city = new string[AS];
        string[] state = new string[AS];
        string[] genre = new string[AS];
        string[] streams = new string[AS];
        string[] description = new string[AS];
        string[] logo_Img = new string[AS];

        const int constant = 42;
        // image varables. 
        double fade = .5;
        double fadeoff = .1;
        int myDuration = 1000; //duration of background images
        double calcSquared = 800 / 7;

        Image pict0 = new Image();
        Image pict1 = new Image();
        Image pict2 = new Image();
        Image pict3 = new Image();
        Image pict4 = new Image();
        Image pict5 = new Image();
        Image pict6 = new Image();
        Image pict7 = new Image();
        Image pict8 = new Image();
        Image pict9 = new Image();
        Image pict10 = new Image();
        Image pict11 = new Image();
        Image pict12 = new Image();
        Image pict13 = new Image();
        Image pict14 = new Image();
        Image pict15 = new Image();
        Image pict16 = new Image();
        Image pict17 = new Image();
        Image pict18 = new Image();
        Image pict19 = new Image();
        Image pict20 = new Image();
        Image pict21 = new Image();
        Image pict22 = new Image();
        Image pict23 = new Image();
        Image pict24 = new Image();
        Image pict25 = new Image();
        Image pict26 = new Image();
        Image pict27 = new Image();
        Image pict28 = new Image();
        Image pict29 = new Image();
        Image pict30 = new Image();
        Image pict31 = new Image();
        Image pict32 = new Image();
        Image pict33 = new Image();
        Image pict34 = new Image();
        Image pict35 = new Image();

        public MainPage()
        {
            this.InitializeComponent();
            CreateAndPopulate(GetBitmapsSources());

            LinearGradientBrush myGradientBrush = new LinearGradientBrush();
            myGradientBrush.StartPoint = new Point(0.5, 0);
            myGradientBrush.EndPoint = new Point(0.5, 1);
            GradientStop myColor1 = new GradientStop();
            myColor1.Color = Windows.UI.Colors.Navy;
            myColor1.Offset = .2;
            GradientStop myColor2 = new GradientStop();
            myColor2.Color = Windows.UI.Colors.Black;
            myColor2.Offset = 1;
            myGradientBrush.GradientStops.Add(myColor1);
            myGradientBrush.GradientStops.Add(myColor2);

            canvas.Background = myGradientBrush;
            
            int butonAdjuster = (800 / 6) - 5;
            _btn_Clock.Width = butonAdjuster;
            _btn_Alarm.Width = butonAdjuster;
            _btn_Local.Width = butonAdjuster;
            _btn_Stream.Width = butonAdjuster;
            _btn_Video.Width = butonAdjuster;
            MenuFlyoutButton.Width = butonAdjuster;

            //createfileinlocalData();

            ThreadPoolTimer _ImageTimer = null;
            _ImageTimer = ThreadPoolTimer.CreatePeriodicTimer(_ImageTimer_Tick, TimeSpan.FromMilliseconds(myDuration));

        }
        private async void _ImageTimer_Tick(ThreadPoolTimer timer)
        {
            var dispatcher = Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher;
            await dispatcher.RunAsync(
              CoreDispatcherPriority.Normal, () =>
              {
                  ChangeImages(GetBitmapsSources());

              });
        }

        private void _btn_Clock_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_clock), null);
        }
        private void _btn_Stream_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_Stream_2), null);
        }
        private void _btn_Local_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_MyMedia), null);
        }
        private void _btn_Alarm_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_Alarm), null);
        }
        private void _btn_Video_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_Video), null);
        }
        public async void createfileinlocalData()
        {
        


            string fileName = "staion_dataFile.txt";
            //Create dataFile.txt in LocalFolder and write My text to it 
            StorageFolder localFolder = ApplicationData.Current.LocalFolder;


            //var placementfolder = localFolder.Path

            var item = await ApplicationData.Current.LocalFolder.TryGetItemAsync(fileName);
            if (item != null)
            {
               // txtBxStorageLocation.Text = Path.Combine(localFolder.ToString(), fileName).ToString();
                File.Delete(System.IO.Path.Combine(localFolder.ToString(), fileName));
            }
            var sampleFile = await localFolder.CreateFileAsync(fileName);

            foreach (DigiRadios spot in finallist)
            {
                IEnumerable<string> dataload = new List<string>() { "farts" };
                await FileIO.AppendLinesAsync(sampleFile, dataload);

            }
            //txtBxStorageLocation.Text = "file write finished.";
            //txtBxStorageLocation.Visibility = Visibility.Visible;
        }

        // image manipulation
        public static BitmapImage[] GetBitmapsSources()
        {
            BitmapImage[] bitSources = new BitmapImage[constant];

            bitSources[0] = new BitmapImage(new Uri("ms-appx:///albumCovers/beetlesWhite.jpg"));
            bitSources[1] = new BitmapImage(new Uri("ms-appx:///albumCovers/beetles.jpg"));
            bitSources[2] = new BitmapImage(new Uri("ms-appx:///albumCovers/boston.jpg"));
            bitSources[3] = new BitmapImage(new Uri("ms-appx:///albumCovers/cream.jpg"));
            bitSources[4] = new BitmapImage(new Uri("ms-appx:///albumCovers/deflepard.jpg"));
            bitSources[5] = new BitmapImage(new Uri("ms-appx:///albumCovers/doors.jpg"));
            bitSources[6] = new BitmapImage(new Uri("ms-appx:///albumCovers/ELO.jpg"));
            bitSources[7] = new BitmapImage(new Uri("ms-appx:///albumCovers/FleetWoodMac.jpg"));
            bitSources[8] = new BitmapImage(new Uri("ms-appx:///albumCovers/ironmaiden.jpg"));
            bitSources[9] = new BitmapImage(new Uri("ms-appx:///albumCovers/jimmyh.jpg"));
            bitSources[10] = new BitmapImage(new Uri("ms-appx:///albumCovers/Johnny_Watson.jpg"));
            bitSources[11] = new BitmapImage(new Uri("ms-appx:///albumCovers/Kiss.jpg"));
            bitSources[12] = new BitmapImage(new Uri("ms-appx:///albumCovers/LedZep.jpg"));
            bitSources[13] = new BitmapImage(new Uri("ms-appx:///albumCovers/megadeth.jpg"));
            bitSources[14] = new BitmapImage(new Uri("ms-appx:///albumCovers/Monsters.jpg"));
            bitSources[15] = new BitmapImage(new Uri("ms-appx:///albumCovers/morrison_hotel.jpg"));
            bitSources[16] = new BitmapImage(new Uri("ms-appx:///albumCovers/Nirvana.jpg"));
            bitSources[17] = new BitmapImage(new Uri("ms-appx:///albumCovers/PinkFloyd_Darkside.jpg"));
            bitSources[18] = new BitmapImage(new Uri("ms-appx:///albumCovers/pinkFloyd_Wall.jpg"));
            bitSources[19] = new BitmapImage(new Uri("ms-appx:///albumCovers/posion.jpg"));
            bitSources[20] = new BitmapImage(new Uri("ms-appx:///albumCovers/scorpions.jpg"));
            bitSources[21] = new BitmapImage(new Uri("ms-appx:///albumCovers/skidrow.jpg"));
            bitSources[22] = new BitmapImage(new Uri("ms-appx:///albumCovers/slaughter.jpg"));
            bitSources[23] = new BitmapImage(new Uri("ms-appx:///albumCovers/u2war.jpg"));
            bitSources[24] = new BitmapImage(new Uri("ms-appx:///albumCovers/VHBalance.jpg"));
            bitSources[25] = new BitmapImage(new Uri("ms-appx:///albumCovers/Whitesnake.jpg"));
            bitSources[26] = new BitmapImage(new Uri("ms-appx:///albumCovers/zztop.jpg"));
            bitSources[27] = new BitmapImage(new Uri("ms-appx:///albumCovers/RollinStones_StickyFingers.jpg"));
            bitSources[28] = new BitmapImage(new Uri("ms-appx:///albumCovers/21p_blurryface.jpg"));
            bitSources[29] = new BitmapImage(new Uri("ms-appx:///albumCovers/Judas_Priest_British_Steel.jpg"));
            bitSources[30] = new BitmapImage(new Uri("ms-appx:///albumCovers/Queen2.jpg"));
            bitSources[31] = new BitmapImage(new Uri("ms-appx:///albumCovers/Iron_Maiden_Fear.jpg"));
            bitSources[32] = new BitmapImage(new Uri("ms-appx:///albumCovers/Guns_N_Roses_AoD.jpg"));
            bitSources[33] = new BitmapImage(new Uri("ms-appx:///albumCovers/HeavyMetal.jpg"));
            bitSources[34] = new BitmapImage(new Uri("ms-appx:///albumCovers/MegaDeth_RiP.jpg"));
            bitSources[35] = new BitmapImage(new Uri("ms-appx:///albumCovers/deflepard_onThurThaNight.jpg"));
            bitSources[36] = new BitmapImage(new Uri("ms-appx:///albumCovers/Metallica.jpg"));
            bitSources[37] = new BitmapImage(new Uri("ms-appx:///albumCovers/gunsNroses_orginal.jpg"));
            bitSources[38] = new BitmapImage(new Uri("ms-appx:///albumCovers/emNem_Recovery.jpg"));
            bitSources[39] = new BitmapImage(new Uri("ms-appx:///albumCovers/vanhallen.jpg"));
            bitSources[40] = new BitmapImage(new Uri("ms-appx:///albumCovers/Tesla_The_Great_Radio.jpg"));
            bitSources[41] = new BitmapImage(new Uri("ms-appx:///albumCovers/Green_Day_American.jpg"));

            return bitSources;
        }
        public void CreateAndPopulate(BitmapImage[] myBitSources)
        {
            TranslateTransform a0posXY = new TranslateTransform();
            TranslateTransform b1posXY = new TranslateTransform();
            TranslateTransform c2posXY = new TranslateTransform();
            TranslateTransform d3posXY = new TranslateTransform();
            TranslateTransform e4posXY = new TranslateTransform();
            TranslateTransform f5posXY = new TranslateTransform();
            TranslateTransform g6posXY = new TranslateTransform();
            TranslateTransform h7posXY = new TranslateTransform();
            TranslateTransform i8posXY = new TranslateTransform();
            TranslateTransform j9posXY = new TranslateTransform();
            TranslateTransform k10posXY = new TranslateTransform();
            TranslateTransform l11posXY = new TranslateTransform();
            TranslateTransform m12posXY = new TranslateTransform();
            TranslateTransform n13posXY = new TranslateTransform();
            TranslateTransform o14posXY = new TranslateTransform();
            TranslateTransform p15posXY = new TranslateTransform();
            TranslateTransform q16posXY = new TranslateTransform();
            TranslateTransform r17posXY = new TranslateTransform();
            TranslateTransform s18posXY = new TranslateTransform();
            TranslateTransform t19posXY = new TranslateTransform();
            TranslateTransform u20posXY = new TranslateTransform();
            TranslateTransform v21posXY = new TranslateTransform();
            TranslateTransform w22posXY = new TranslateTransform();
            TranslateTransform x23posXY = new TranslateTransform();
            TranslateTransform y24posXY = new TranslateTransform();
            TranslateTransform z25posXY = new TranslateTransform();
            TranslateTransform aa26posXY = new TranslateTransform();
            TranslateTransform bb27posXY = new TranslateTransform();
            TranslateTransform cc28posXY = new TranslateTransform();
            TranslateTransform dd29posXY = new TranslateTransform();
            TranslateTransform ee30posXY = new TranslateTransform();
            TranslateTransform ff31posXY = new TranslateTransform();
            TranslateTransform gg32posXY = new TranslateTransform();
            TranslateTransform hh33posXY = new TranslateTransform();
            TranslateTransform ii34posXY = new TranslateTransform();
            TranslateTransform jj35posXY = new TranslateTransform();
            TranslateTransform kk36posXY = new TranslateTransform();
            TranslateTransform ll37posXY = new TranslateTransform();
            TranslateTransform mm38posXY = new TranslateTransform();
            TranslateTransform nn39posXY = new TranslateTransform();
            TranslateTransform oo40posXY = new TranslateTransform();
            TranslateTransform pp41posXY = new TranslateTransform();

            int myZindex = -1;

            // declare the images.
            
            pict1.Source = myBitSources[returnAnumber(41)];
            pict1.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict1, myZindex);
            canvas.Children.Add(pict1);
            pict1.Width = calcSquared;
            pict1.Height = calcSquared;
            pict1.Opacity = fade;
            a0posXY.X = calcSquared * 0;
            a0posXY.Y = calcSquared * 0;
            pict1.RenderTransform = a0posXY;


            pict2.Source = myBitSources[returnAnumber(41)];
            pict2.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict2, myZindex);
            canvas.Children.Add(pict2);
            pict2.Width = calcSquared;
            pict2.Height = calcSquared;
            pict2.Opacity = fade;
            b1posXY.X = calcSquared * 1;
            b1posXY.Y = calcSquared * 0;
            pict2.RenderTransform = b1posXY;

            pict3.Source = myBitSources[returnAnumber(41)];
            pict3.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict3, myZindex);
            canvas.Children.Add(pict3);
            pict3.Width = calcSquared;
            pict3.Height = calcSquared;
            pict3.Opacity = fade;
            c2posXY.X = (calcSquared * 2);
            c2posXY.Y = calcSquared * 0;
            pict3.RenderTransform = c2posXY;

            pict4.Source = myBitSources[returnAnumber(41)];
            pict4.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict4, myZindex);
            canvas.Children.Add(pict4);
            pict4.Width = calcSquared;
            pict4.Height = calcSquared;
            pict4.Opacity = fade;
            d3posXY.X = (calcSquared * 3);
            d3posXY.Y = calcSquared * 0;
            pict4.RenderTransform = d3posXY;

            pict5.Source = myBitSources[returnAnumber(41)];
            pict5.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict5, myZindex);
            canvas.Children.Add(pict5);
            pict5.Width = calcSquared;
            pict5.Height = calcSquared;
            pict5.Opacity = fade;
            e4posXY.X = (calcSquared * 4);
            e4posXY.Y = calcSquared * 0;
            pict5.RenderTransform = e4posXY;

            pict6.Source = myBitSources[returnAnumber(41)];
            pict6.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict6, myZindex);
            canvas.Children.Add(pict6);
            pict6.Width = calcSquared;
            pict6.Height = calcSquared;
            pict6.Opacity = fade;
            f5posXY.X = (calcSquared * 5);
            f5posXY.Y = calcSquared * 0;
            pict6.RenderTransform = f5posXY;

            pict7.Source = myBitSources[returnAnumber(41)];
            pict7.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict7, myZindex);
            canvas.Children.Add(pict7);
            pict7.Width = calcSquared;
            pict7.Height = calcSquared;
            pict7.Opacity = fade;
            g6posXY.X = (calcSquared * 6);
            g6posXY.Y = calcSquared * 0;
            pict7.RenderTransform = g6posXY;

            pict8.Source = myBitSources[returnAnumber(41)];
            pict8.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict8, myZindex);
            canvas.Children.Add(pict8);
            pict8.Width = calcSquared;
            pict8.Height = calcSquared;
            pict8.Opacity = fade;
            h7posXY.X = (calcSquared * 0);
            h7posXY.Y = (calcSquared * 1);
            pict8.RenderTransform = h7posXY;

            pict9.Source = myBitSources[returnAnumber(41)];
            pict9.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict9, myZindex);
            canvas.Children.Add(pict9);
            pict9.Width = calcSquared;
            pict9.Height = calcSquared;
            pict9.Opacity = fade;
            i8posXY.X = (calcSquared * 1);
            i8posXY.Y = (calcSquared * 1);
            pict9.RenderTransform = i8posXY;

            pict10.Source = myBitSources[returnAnumber(41)];
            pict10.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict10, myZindex);
            canvas.Children.Add(pict10);
            pict10.Width = calcSquared;
            pict10.Height = calcSquared;
            pict10.Opacity = fade;
            j9posXY.X = (calcSquared * 2);
            j9posXY.Y = (calcSquared * 1);
            pict10.RenderTransform = j9posXY;

            pict11.Source = myBitSources[returnAnumber(41)];
            pict11.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict11, myZindex);
            canvas.Children.Add(pict11);
            pict11.Width = calcSquared;
            pict11.Height = calcSquared;
            pict11.Opacity = fade;
            k10posXY.X = (calcSquared * 3);
            k10posXY.Y = (calcSquared * 1);
            pict11.RenderTransform = k10posXY;

            pict12.Source = myBitSources[returnAnumber(41)];
            pict12.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict12, myZindex);
            canvas.Children.Add(pict12);
            pict12.Width = calcSquared;
            pict12.Height = calcSquared;
            pict12.Opacity = fade;
            l11posXY.X = (calcSquared * 4);
            l11posXY.Y = (calcSquared * 1);
            pict12.RenderTransform = l11posXY;

            Image pict13 = new Image();
            pict13.Source = myBitSources[returnAnumber(41)];
            pict13.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict13, myZindex);
            canvas.Children.Add(pict13);
            pict13.Width = calcSquared;
            pict13.Height = calcSquared;
            pict13.Opacity = fade;
            m12posXY.X = (calcSquared * 5);
            m12posXY.Y = (calcSquared * 1);
            pict13.RenderTransform = m12posXY;

            pict14.Source = myBitSources[returnAnumber(41)];
            pict14.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict14, myZindex);
            canvas.Children.Add(pict14);
            pict14.Width = calcSquared;
            pict14.Height = calcSquared;
            pict14.Opacity = fade;
            n13posXY.X = (calcSquared * 6);
            n13posXY.Y = (calcSquared * 1);
            pict14.RenderTransform = n13posXY;

            pict15.Source = myBitSources[returnAnumber(41)];
            pict15.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict15, myZindex);
            canvas.Children.Add(pict15);
            pict15.Width = calcSquared;
            pict15.Height = calcSquared;
            pict15.Opacity = fade;
            o14posXY.X = (calcSquared * 0);
            o14posXY.Y = (calcSquared * 2);
            pict15.RenderTransform = o14posXY;

            pict16.Source = myBitSources[returnAnumber(41)];
            pict16.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict16, myZindex);
            canvas.Children.Add(pict16);
            pict16.Width = calcSquared;
            pict16.Height = calcSquared;
            pict16.Opacity = fade;
            p15posXY.X = (calcSquared * 1);
            p15posXY.Y = (calcSquared * 2);
            pict16.RenderTransform = p15posXY;

            pict17.Source = myBitSources[returnAnumber(41)];
            pict17.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict17, myZindex);
            canvas.Children.Add(pict17);
            pict17.Width = calcSquared;
            pict17.Height = calcSquared;
            pict17.Opacity = fade;
            q16posXY.X = (calcSquared * 2);
            q16posXY.Y = (calcSquared * 2);
            pict17.RenderTransform = q16posXY;

            pict18.Source = myBitSources[returnAnumber(41)];
            pict18.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict18, myZindex);
            canvas.Children.Add(pict18);
            pict18.Width = calcSquared;
            pict18.Height = calcSquared;
            pict18.Opacity = fade;
            r17posXY.X = (calcSquared * 3);
            r17posXY.Y = (calcSquared * 2);
            pict18.RenderTransform = r17posXY;

            pict19.Source = myBitSources[returnAnumber(41)];
            pict19.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict19, myZindex);
            canvas.Children.Add(pict19);
            pict19.Width = calcSquared;
            pict19.Height = calcSquared;
            pict19.Opacity = fade;
            s18posXY.X = (calcSquared * 4);
            s18posXY.Y = (calcSquared * 2);
            pict19.RenderTransform = s18posXY;

            pict20.Source = myBitSources[returnAnumber(41)];
            pict20.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict20, myZindex);
            canvas.Children.Add(pict20);
            pict20.Width = calcSquared;
            pict20.Height = calcSquared;
            pict20.Opacity = fade;
            t19posXY.X = (calcSquared * 5);
            t19posXY.Y = (calcSquared * 2);
            pict20.RenderTransform = t19posXY;

            pict21.Source = myBitSources[returnAnumber(41)];
            pict21.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict21, myZindex);
            canvas.Children.Add(pict21);
            pict21.Width = calcSquared;
            pict21.Height = calcSquared;
            pict21.Opacity = fade;
            u20posXY.X = (calcSquared * 6);
            u20posXY.Y = (calcSquared * 2);
            pict21.RenderTransform = u20posXY;

            pict22.Source = myBitSources[returnAnumber(41)];
            pict22.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict22, myZindex);
            canvas.Children.Add(pict22);
            pict22.Width = calcSquared;
            pict22.Height = calcSquared;
            pict22.Opacity = fade;
            v21posXY.X = (calcSquared * 0);
            v21posXY.Y = (calcSquared * 3);
            pict22.RenderTransform = v21posXY;

            pict23.Source = myBitSources[returnAnumber(41)];
            pict23.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict23, myZindex);
            canvas.Children.Add(pict23);
            pict23.Width = calcSquared;
            pict23.Height = calcSquared;
            pict23.Opacity = fade;
            w22posXY.X = (calcSquared * 1);
            w22posXY.Y = (calcSquared * 3);
            pict23.RenderTransform = w22posXY;

            pict24.Source = myBitSources[returnAnumber(41)];
            pict24.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict24, myZindex);
            canvas.Children.Add(pict24);
            pict24.Width = calcSquared;
            pict24.Height = calcSquared;
            pict24.Opacity = fade;
            x23posXY.X = (calcSquared * 2);
            x23posXY.Y = (calcSquared * 3);
            pict24.RenderTransform = x23posXY;

            pict25.Source = myBitSources[returnAnumber(41)];
            pict25.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict25, myZindex);
            canvas.Children.Add(pict25);
            pict25.Width = calcSquared;
            pict25.Height = calcSquared;
            pict25.Opacity = fade;
            y24posXY.X = (calcSquared * 3);
            y24posXY.Y = (calcSquared * 3);
            pict25.RenderTransform = y24posXY;

            pict26.Stretch = Stretch.Fill;
            pict26.Source = myBitSources[returnAnumber(41)];
            Canvas.SetZIndex(pict26, myZindex);
            canvas.Children.Add(pict26);
            pict26.Width = calcSquared;
            pict26.Height = calcSquared;
            pict26.Opacity = fade;
            z25posXY.X = (calcSquared * 4);
            z25posXY.Y = (calcSquared * 3);
            pict26.RenderTransform = z25posXY;

            pict27.Source = myBitSources[returnAnumber(41)];
            pict27.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict27, myZindex);
            canvas.Children.Add(pict27);
            pict27.Width = calcSquared;
            pict27.Height = calcSquared;
            pict27.Opacity = fade;
            aa26posXY.X = (calcSquared * 5);
            aa26posXY.Y = (calcSquared * 3);
            pict27.RenderTransform = aa26posXY;

            pict28.Source = myBitSources[returnAnumber(41)];
            pict28.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict28, myZindex);
            canvas.Children.Add(pict28);
            pict28.Width = calcSquared;
            pict28.Height = calcSquared;
            pict28.Opacity = fade;
            bb27posXY.X = (calcSquared * 6);
            bb27posXY.Y = (calcSquared * 3);
            pict28.RenderTransform = bb27posXY;

            pict29.Source = myBitSources[returnAnumber(41)];
            pict29.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict29, myZindex);
            canvas.Children.Add(pict29);
            pict29.Width = calcSquared;
            pict29.Height = calcSquared;
            pict29.Opacity = fade;
            cc28posXY.X = (calcSquared * 0);
            cc28posXY.Y = (calcSquared * 4);
            pict29.RenderTransform = cc28posXY;

            pict30.Source = myBitSources[returnAnumber(41)];
            pict30.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict30, myZindex);
            canvas.Children.Add(pict30);
            pict30.Width = calcSquared;
            pict30.Height = calcSquared;
            pict30.Opacity = fade;
            dd29posXY.X = (calcSquared * 1);
            dd29posXY.Y = (calcSquared * 4);
            pict30.RenderTransform = dd29posXY;

            pict31.Source = myBitSources[returnAnumber(41)];
            pict31.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict31, myZindex);
            canvas.Children.Add(pict31);
            pict31.Width = calcSquared;
            pict31.Height = calcSquared;
            pict31.Opacity = fade;
            ee30posXY.X = (calcSquared * 2);
            ee30posXY.Y = (calcSquared * 4);
            pict31.RenderTransform = ee30posXY;

            pict32.Source = myBitSources[returnAnumber(41)];
            pict32.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict32, myZindex);
            canvas.Children.Add(pict32);
            pict32.Width = calcSquared;
            pict32.Height = calcSquared;
            pict32.Opacity = fade;
            ff31posXY.X = (calcSquared * 3);
            ff31posXY.Y = (calcSquared * 4);
            pict32.RenderTransform = ff31posXY;

            pict33.Source = myBitSources[32];
            pict33.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict33, myZindex);
            canvas.Children.Add(pict33);
            pict33.Width = calcSquared;
            pict33.Height = calcSquared;
            pict33.Opacity = fade;
            gg32posXY.X = (calcSquared * 4);
            gg32posXY.Y = (calcSquared * 4);
            pict33.RenderTransform = gg32posXY;

            pict34.Source = myBitSources[33];
            pict34.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict34, myZindex);
            canvas.Children.Add(pict34);
            pict34.Width = calcSquared;
            pict34.Height = calcSquared;
            pict34.Opacity = fade;
            hh33posXY.X = (calcSquared * 5);
            hh33posXY.Y = (calcSquared * 4);
            pict34.RenderTransform = hh33posXY;

            pict35.Source = myBitSources[returnAnumber(41)];
            pict35.Stretch = Stretch.Fill;
            Canvas.SetZIndex(pict35, myZindex);
            canvas.Children.Add(pict35);
            pict35.Width = calcSquared;
            pict35.Height = calcSquared;
            pict35.Opacity = fade;
            ii34posXY.X = (calcSquared * 6);
            ii34posXY.Y = (calcSquared * 4);
            pict35.RenderTransform = ii34posXY;

        }
        public void ChangeImages(BitmapImage[] myBitSources)
        {
            int value = returnAnumber(41);
            int bart = returnAnumber(41);
            int chance = returnAnumber(8);
            bool flag = false;

            if (chance == 2)
            {
                flag = true;
            }
            else
            {
                flag = false;
            }

            switch (value)
            {

                case 0:
                    pict0.Source = myBitSources[bart];
                    if (flag == true)
                    {
                        pict0.Width = calcSquared * 2;
                        pict0.Height = calcSquared * 2;
                    }
                    break;
                case 1:
                    pict1.Source = myBitSources[bart];
                    pict1.Opacity = fade;
                    pict2.Opacity = fade;
                    pict8.Opacity = fade;
                    pict9.Opacity = fade;
                    if (flag == true)
                    {
                        pict1.Width = calcSquared * 2;
                        pict1.Height = calcSquared * 2;
                        pict2.Opacity = fadeoff;
                        pict8.Opacity = fadeoff;
                        pict9.Opacity = fadeoff;
                    }
                    break;
                case 2:
                    pict2.Source = myBitSources[bart];
                    pict2.Opacity = fade;
                    pict3.Opacity = fade;
                    pict9.Opacity = fade;
                    pict10.Opacity = fade;
                    if (flag == true)
                    {
                        pict2.Width = calcSquared * 2;
                        pict2.Height = calcSquared * 2;
                        pict3.Opacity = fadeoff;
                        pict9.Opacity = fadeoff;
                        pict10.Opacity = fadeoff;

                    }
                    break;
                case 3:
                    pict3.Source = myBitSources[bart];
                    pict3.Opacity = fade;
                    pict4.Opacity = fade;
                    pict10.Opacity = fade;
                    pict11.Opacity = fade;
                    if (flag == true)
                    {
                        pict3.Width = calcSquared * 2;
                        pict3.Height = calcSquared * 2;
                        pict4.Opacity = fadeoff;
                        pict10.Opacity = fadeoff;
                        pict11.Opacity = fadeoff;
                    }
                    break;
                case 4:
                    pict4.Source = myBitSources[bart];
                    pict4.Opacity = fade;
                    pict5.Opacity = fade;
                    pict11.Opacity = fade;
                    pict12.Opacity = fade;
                    if (flag == true)
                    {
                        pict4.Width = calcSquared * 2;
                        pict4.Height = calcSquared * 2;
                        pict5.Opacity = fadeoff;
                        pict11.Opacity = fadeoff;
                        pict12.Opacity = fadeoff;
                    }
                    break;
                case 5:
                    pict5.Source = myBitSources[bart];
                    pict5.Opacity = fade;
                    pict6.Opacity = fade;
                    pict12.Opacity = fade;
                    pict13.Opacity = fade;
                    if (flag == true)
                    {
                        pict5.Width = calcSquared * 2;
                        pict5.Height = calcSquared * 2;
                        pict6.Opacity = fadeoff;
                        pict12.Opacity = fadeoff;
                        pict13.Opacity = fadeoff;
                    }
                    break;
                case 6:
                    pict6.Source = myBitSources[bart];
                    pict6.Opacity = fade;
                    pict7.Opacity = fade;
                    pict13.Opacity = fade;
                    pict14.Opacity = fade;
                    if (flag == true)
                    {
                        pict6.Width = calcSquared * 2;
                        pict6.Height = calcSquared * 2;
                        pict7.Opacity = fadeoff;
                        pict13.Opacity = fadeoff;
                        pict14.Opacity = fadeoff;
                    }
                    break;
                case 7:
                    pict7.Source = myBitSources[bart];
                    pict7.Opacity = fade;
                    pict14.Opacity = fade;
                    if (flag == true)
                    {
                        pict7.Width = calcSquared * 2;
                        pict7.Height = calcSquared * 2;
                        pict14.Opacity = fadeoff;
                    }
                    break;
                case 8:
                    pict8.Source = myBitSources[bart];
                    pict8.Opacity = fade;
                    pict9.Opacity = fade;
                    pict15.Opacity = fade;
                    pict16.Opacity = fade;
                    if (flag == true)
                    {
                        pict8.Width = calcSquared * 2;
                        pict8.Height = calcSquared * 2;
                        pict9.Opacity = fadeoff;
                        pict15.Opacity = fadeoff;
                        pict16.Opacity = fadeoff;
                    }
                    break;
                case 9:
                    pict9.Source = myBitSources[bart];
                    pict9.Opacity = fade;
                    pict10.Opacity = fade;
                    pict16.Opacity = fade;
                    pict17.Opacity = fade;
                    if (flag == true)
                    {
                        pict9.Width = calcSquared * 2;
                        pict9.Height = calcSquared * 2;
                        pict10.Opacity = fadeoff;
                        pict16.Opacity = fadeoff;
                        pict17.Opacity = fadeoff;
                    }
                    break;
                case 10:
                    pict10.Source = myBitSources[bart];
                    pict10.Opacity = fade;
                    pict11.Opacity = fade;
                    pict17.Opacity = fade;
                    pict18.Opacity = fade;
                    if (flag == true)
                    {
                        pict10.Width = calcSquared * 2;
                        pict10.Height = calcSquared * 2;
                        pict11.Opacity = fadeoff;
                        pict17.Opacity = fadeoff;
                        pict18.Opacity = fadeoff;
                    }
                    break;
                case 11:
                    pict11.Source = myBitSources[bart];
                    pict11.Opacity = fade;
                    pict12.Opacity = fade;
                    pict18.Opacity = fade;
                    pict19.Opacity = fade;
                    if (flag == true)
                    {
                        pict11.Width = calcSquared * 2;
                        pict11.Height = calcSquared * 2;
                        pict12.Opacity = fadeoff;
                        pict18.Opacity = fadeoff;
                        pict19.Opacity = fadeoff;
                    }
                    break;
                case 12:
                    pict12.Source = myBitSources[bart];
                    pict12.Opacity = fade;
                    pict13.Opacity = fade;
                    pict19.Opacity = fade;
                    pict20.Opacity = fade;
                    if (flag == true)
                    {
                        pict12.Width = calcSquared * 2;
                        pict12.Height = calcSquared * 2;
                        pict13.Opacity = fadeoff;
                        pict19.Opacity = fadeoff;
                        pict20.Opacity = fadeoff;
                    }
                    break;
                case 13:
                    pict13.Source = myBitSources[bart];
                    pict13.Opacity = fade;
                    pict14.Opacity = fade;
                    pict20.Opacity = fade;
                    pict21.Opacity = fade;
                    if (flag == true)
                    {
                        pict13.Width = calcSquared * 2;
                        pict13.Height = calcSquared * 2;
                        pict14.Opacity = fadeoff;
                        pict20.Opacity = fadeoff;
                        pict21.Opacity = fadeoff;
                    }
                    break;
                case 14:
                    pict14.Source = myBitSources[bart];
                    pict14.Opacity = fade;
                    pict21.Opacity = fade;
                    if (flag == true)
                    {
                        pict14.Width = calcSquared * 2;
                        pict14.Height = calcSquared * 2;
                        pict21.Opacity = fadeoff;
                    }
                    break;
                case 15:
                    pict15.Source = myBitSources[bart];
                    pict15.Opacity = fade;
                    pict16.Opacity = fade;
                    pict22.Opacity = fade;
                    pict23.Opacity = fade;
                    if (flag == true)
                    {
                        pict15.Width = calcSquared * 2;
                        pict15.Height = calcSquared * 2;
                        pict16.Opacity = fadeoff;
                        pict22.Opacity = fadeoff;
                        pict23.Opacity = fadeoff;
                    }
                    break;
                case 16:
                    pict16.Source = myBitSources[bart];
                    pict16.Opacity = fade;
                    pict17.Opacity = fade;
                    pict23.Opacity = fade;
                    pict24.Opacity = fade;
                    if (flag == true)
                    {
                        pict16.Width = calcSquared * 2;
                        pict16.Height = calcSquared * 2;
                        pict17.Opacity = fadeoff;
                        pict23.Opacity = fadeoff;
                        pict24.Opacity = fadeoff;
                    }
                    break;
                case 17:
                    pict17.Source = myBitSources[bart];
                    pict17.Opacity = fade;
                    pict18.Opacity = fade;
                    pict24.Opacity = fade;
                    pict25.Opacity = fade;
                    if (flag == true)
                    {
                        pict17.Width = calcSquared * 2;
                        pict17.Height = calcSquared * 2;
                        pict17.Opacity = fade;
                        pict18.Opacity = fadeoff;
                        pict24.Opacity = fadeoff;
                        pict25.Opacity = fadeoff;
                    }
                    break;
                case 18:
                    pict18.Source = myBitSources[bart];
                    pict18.Opacity = fade;
                    pict29.Opacity = fade;
                    pict25.Opacity = fade;
                    pict26.Opacity = fade;
                    if (flag == true)
                    {
                        pict18.Width = calcSquared * 2;
                        pict18.Height = calcSquared * 2;
                        pict29.Opacity = fadeoff;
                        pict25.Opacity = fadeoff;
                        pict26.Opacity = fadeoff;
                    }
                    break;
                case 19:
                    pict19.Source = myBitSources[bart];
                    pict19.Opacity = fade;
                    pict20.Opacity = fade;
                    pict26.Opacity = fade;
                    pict27.Opacity = fade;
                    if (flag == true)
                    {
                        pict19.Width = calcSquared * 2;
                        pict19.Height = calcSquared * 2;
                        pict20.Opacity = fadeoff;
                        pict26.Opacity = fadeoff;
                        pict27.Opacity = fadeoff;
                    }
                    break;
                case 20:
                    pict20.Source = myBitSources[bart];
                    pict20.Opacity = fade;
                    pict21.Opacity = fade;
                    pict27.Opacity = fade;
                    pict28.Opacity = fade;
                    if (flag == true)
                    {
                        pict20.Width = calcSquared * 2;
                        pict20.Height = calcSquared * 2;
                        pict21.Opacity = fadeoff;
                        pict27.Opacity = fadeoff;
                        pict28.Opacity = fadeoff;
                    }
                    break;
                case 21:
                    pict21.Source = myBitSources[bart];
                    pict21.Opacity = fade;
                    pict28.Opacity = fade;
                    if (flag == true)
                    {
                        pict21.Width = calcSquared * 2;
                        pict21.Height = calcSquared * 2;
                        pict28.Opacity = fadeoff;
                    }
...

This file has been truncated, please download it to see its full contents.

Radio_lab_Dictionary.xaml

XML
This is the resource dictionary reference in in the app pages.
<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Radio_Lab">
    <Style TargetType="Canvas" x:Key="BackgroundElement"  >
        <Setter Property="Background">
            <Setter.Value>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FF2C72DA" Offset="0.989"/>
                    <GradientStop Color="#FF0F3A64" Offset=".1"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
    </Style>
    <!-- main menu buttons styles -->
        <Style TargetType="Button" x:Key="menu_button">
        <Setter Property="FontFamily" Value="Magneto" />
        <Setter Property="FontSize" Value="16" />
        <Setter Property="Foreground" Value="LightGray" />
        <Setter Property="Margin" Value="5,5,0,0" />
            <Setter Property="Width" Value="120"/>
            <Setter Property="Height" Value="40" />
            <Setter Property="BorderBrush">
                <Setter.Value>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="#FFDADCE8" Offset="1"/>
                        <GradientStop Color="#FF031B8B"/>
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>

        <Setter Property="Background">
                <Setter.Value>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="#FFDADCE8" Offset="1"/>
                        <GradientStop Color="#FF031B8B"/>
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
        </Style>
    <Style TargetType="Button" x:Key="menu_button_selected">
        <Setter Property="FontFamily" Value="Magneto" />
        <Setter Property="FontSize" Value="18" />
        <Setter Property="Foreground" Value="LightGray" />
        <Setter Property="Margin" Value="5,5,0,0" />
        <Setter Property="Width" Value="120" />
        <Setter Property="Height" Value="50" />
        <Setter Property="BorderBrush">
                <Setter.Value>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="#FFDADCE8" Offset="1"/>
                        <GradientStop Color="#FF6C80E2"/>
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
        <Setter Property="Background">
            <Setter.Value>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FF031B8B" Offset="1"/>
                    <GradientStop Color="#FFDADCE8"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
    </Style>
        <!-- streaming music styles -->
        <Style TargetType="Button" x:Key="selection_buttons">
            <Setter Property="BorderThickness" Value="1,2,2,3" />
            <Setter Property="Foreground" Value="White" />
            <Setter Property="BorderBrush" >
                <Setter.Value>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="#FFDADCE8" Offset="1"/>
                        <GradientStop Color="#FF031B8B"/>
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
            <Setter Property="Background">
                <Setter.Value>
                    <SolidColorBrush  Opacity="0.15" Color="#FF3163D1" ></SolidColorBrush>
                </Setter.Value>
            </Setter>
        </Style>
        <Style TargetType="Button" x:Key="tapedeck">
            <Setter Property="Foreground">
                <Setter.Value>
                    <SolidColorBrush Color="LightGray"/>
                </Setter.Value>
            </Setter>

            <Setter Property="BorderBrush">
                <Setter.Value>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="#FF86899E" Offset="1"/>
                        <GradientStop Color="#FF031B8B"/>
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
            <Setter Property="Background">
                <Setter.Value>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="#FF5A5D70" Offset="1"/>
                        <GradientStop Color="#FF031B8B"/>
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
            <Setter Property="Width" Value="75"/>
            <Setter Property="Height" Value="30"/>
            <Setter Property="Margin" Value="15,5,5,5"/>
        </Style>
        <Style TargetType="Button" x:Key="tapedeck_rec">
            <Setter Property="Foreground">
                <Setter.Value>
                    <SolidColorBrush Color="LightGray"/>
                </Setter.Value>
            </Setter>

            <Setter Property="BorderBrush">
                <Setter.Value>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="#FF86899E" Offset="1"/>
                        <GradientStop Color="#FF031B8B"/>
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
            <Setter Property="Background">
                <Setter.Value>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="#FF5A5D70" Offset="0.88"/>
                        <GradientStop Color="#FFE81010" Offset="0.563"/>
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
            <Setter Property="Width" Value="75"/>
            <Setter Property="Height" Value="30"/>
            <Setter Property="Margin" Value="15,5,5,5"/>
        </Style>
        <Style x:Key="CircleSlider" TargetType="Slider">
            <Setter Property="Background">
                <Setter.Value>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="#FFDADCE8" Offset="1"/>
                        <GradientStop Color="#FF031B8B"/>
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
            <Setter Property="BorderBrush" Value="Green"/>
            <Setter Property="BorderThickness" Value="1"/>
            <Setter Property="Foreground" Value="Blue"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Slider">
                        <Grid Margin="{TemplateBinding Padding}">
                            <Grid.Resources>
                                <Style x:Key="SliderThumbStyle" TargetType="Thumb">
                                    <Setter Property="BorderThickness" Value="2"/>
                                    <Setter Property="BorderBrush" Value="LightBlue"/>
                                    <Setter Property="Foreground" Value="blue"/>
                                    <Setter Property="Template">
                                        <Setter.Value>
                                            <ControlTemplate TargetType="Thumb">
                                                <Image x:Name="volumeSlider" Source="..\images\volume.png" Height="30"/>
                                                <!-- <Ellipse StrokeThickness="2" Stroke="{TemplateBinding BorderBrush}" Fill="{TemplateBinding Foreground}"/> 
                                               -->
                                            </ControlTemplate>
                                        </Setter.Value>
                                    </Setter>
                                </Style>
                            </Grid.Resources>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto"/>
                                <RowDefinition Height="*"/>
                            </Grid.RowDefinitions>
                            <Grid x:Name="SliderContainer" Background="Transparent" Grid.Row="1">
                                <Grid x:Name="HorizontalTemplate">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition Width="*"/>
                                    </Grid.ColumnDefinitions>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="17"/>
                                        <RowDefinition Height="Auto"/>
                                        <RowDefinition Height="17"/>
                                    </Grid.RowDefinitions>
                                    <Rectangle x:Name="HorizontalTrackRect" Grid.ColumnSpan="3" Fill="{TemplateBinding Background}" Grid.Row="1" Height="5" RadiusX="-5" RadiusY="5"/>
                                    <Rectangle x:Name="HorizontalDecreaseRect" Fill="{TemplateBinding Background}" Grid.Row="1" Height="5" RadiusX="-5" RadiusY="5"/>
                                    <!-- this and the one above set the slider track -->
                                    <Rectangle x:Name="HorizontalBorder" Grid.ColumnSpan="3" Grid.Row="1" Stroke="{TemplateBinding BorderBrush}"
                            StrokeThickness="{TemplateBinding BorderThickness}" Height="5" RadiusX="5" RadiusY="5"/>
                                    <Thumb x:Name="HorizontalThumb" AutomationProperties.AccessibilityView="Raw" Background="{ThemeResource SliderThumbBackgroundThemeBrush}"
                            Grid.Column="1" DataContext="{TemplateBinding Value}" Grid.Row="1" Style="{StaticResource SliderThumbStyle}" Height="25" Width="25"/>
                                    <!-- sets an offset of the location of the thumb -->
                                </Grid>
                                <Grid x:Name="VerticalTemplate" Visibility="Collapsed">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="17"/>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition Width="17"/>
                                    </Grid.ColumnDefinitions>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="*"/>
                                        <RowDefinition Height="Auto"/>
                                        <RowDefinition Height="Auto"/>
                                    </Grid.RowDefinitions>
                                    <Rectangle x:Name="VerticalTrackRect" Grid.Column="1" Fill="{TemplateBinding Background}" Grid.RowSpan="3" Width="10" RadiusX="5" RadiusY="5"/>
                                    <Rectangle x:Name="VerticalDecreaseRect" Grid.Column="1" Fill="{TemplateBinding Background}" Grid.Row="2"/>
                                    <Rectangle x:Name="VerticalBorder" Grid.RowSpan="3" Grid.Column="1"  Stroke="{TemplateBinding BorderBrush}"
                            StrokeThickness="{TemplateBinding BorderThickness}" Width="10" RadiusX="5" RadiusY="5" />
                                    <Thumb x:Name="VerticalThumb" AutomationProperties.AccessibilityView="Raw" Background="{ThemeResource SliderThumbBackgroundThemeBrush}"
                            Grid.Column="1" DataContext="{TemplateBinding Value}" Grid.Row="1" Style="{StaticResource SliderThumbStyle}" Height="25" Width="25"/>
                                </Grid>
                            </Grid>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        <Style x:Key="MusicSlew" TargetType="Slider">
        <Setter Property="Background">
            <Setter.Value>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFDADCE8" Offset="1"/>
                    <GradientStop Color="#FF031B8B"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
        <Setter Property="BorderBrush" Value="Green"/>
        <Setter Property="BorderThickness" Value="1"/>
        <Setter Property="Foreground" Value="Blue"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Slider">
                    <Grid Margin="{TemplateBinding Padding}">
                        <Grid.Resources>
                            <Style x:Key="SliderThumbStyle" TargetType="Thumb">
                                <Setter Property="BorderThickness" Value="2"/>
                                <Setter Property="BorderBrush" Value="LightBlue"/>
                                <Setter Property="Foreground" Value="blue"/>
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="Thumb">

                                            <Image x:Name="TimeSlider" Source="..\images\playPause.png" Height="30"/>
                                            <!-- <Ellipse StrokeThickness="2" Stroke="{TemplateBinding BorderBrush}" Fill="{TemplateBinding Foreground}"/> 
                                               -->
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>
                        </Grid.Resources>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="*"/>
                        </Grid.RowDefinitions>
                        <Grid x:Name="SliderContainer" Background="Transparent" Grid.Row="1">
                            <Grid x:Name="HorizontalTemplate">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto"/>
                                    <ColumnDefinition Width="Auto"/>
                                    <ColumnDefinition Width="*"/>
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="17"/>
                                    <RowDefinition Height="Auto"/>
                                    <RowDefinition Height="17"/>
                                </Grid.RowDefinitions>
                                <Rectangle x:Name="HorizontalTrackRect" Grid.ColumnSpan="3" Fill="{TemplateBinding Background}" Grid.Row="1" Height="5" RadiusX="-5" RadiusY="5"/>
                                <Rectangle x:Name="HorizontalDecreaseRect" Fill="{TemplateBinding Background}" Grid.Row="1" Height="5" RadiusX="-5" RadiusY="5"/>
                                <!-- this and the one above set the slider track -->
                                <Rectangle x:Name="HorizontalBorder" Grid.ColumnSpan="3" Grid.Row="1" Stroke="{TemplateBinding BorderBrush}"
                            StrokeThickness="{TemplateBinding BorderThickness}" Height="5" RadiusX="5" RadiusY="5"/>
                                <Thumb x:Name="HorizontalThumb" AutomationProperties.AccessibilityView="Raw" Background="{ThemeResource SliderThumbBackgroundThemeBrush}"
                            Grid.Column="1" DataContext="{TemplateBinding Value}" Grid.Row="1" Style="{StaticResource SliderThumbStyle}" Height="25" Width="25"/>
                                <!-- sets an offset of the location of the thumb -->
                            </Grid>
                            <Grid x:Name="VerticalTemplate" Visibility="Collapsed">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="17"/>
                                    <ColumnDefinition Width="Auto"/>
                                    <ColumnDefinition Width="17"/>
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="*"/>
                                    <RowDefinition Height="Auto"/>
                                    <RowDefinition Height="Auto"/>
                                </Grid.RowDefinitions>
                                <Rectangle x:Name="VerticalTrackRect" Grid.Column="1" Fill="{TemplateBinding Background}" Grid.RowSpan="3" Width="10" RadiusX="5" RadiusY="5"/>
                                <Rectangle x:Name="VerticalDecreaseRect" Grid.Column="1" Fill="{TemplateBinding Background}" Grid.Row="2"/>
                                <Rectangle x:Name="VerticalBorder" Grid.RowSpan="3" Grid.Column="1"  Stroke="{TemplateBinding BorderBrush}"
                            StrokeThickness="{TemplateBinding BorderThickness}" Width="10" RadiusX="5" RadiusY="5" />
                                <Thumb x:Name="VerticalThumb" AutomationProperties.AccessibilityView="Raw" Background="{ThemeResource SliderThumbBackgroundThemeBrush}"
                            Grid.Column="1" DataContext="{TemplateBinding Value}" Grid.Row="1" Style="{StaticResource SliderThumbStyle}" Height="25" Width="25"/>
                            </Grid>
                        </Grid>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <!-- Clock styles -->
    <Style TargetType="TextBox" x:Key="clockBox">
        <Setter Property="FontFamily" Value="Bradley Hand ITC" />
        <Setter Property="FontSize" Value="175" />
        <Setter Property="FontWeight" Value="Bold" />
        <Setter Property="Foreground" Value="LightGray" />
        <Setter Property="Margin" Value="25,100,0,0" />
        <Setter Property="Background">
            <Setter.Value>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FF49494D" Offset="0.15"/>
                    <GradientStop Color="#FE5D5DE2" Offset="0.45"/>
                    <GradientStop Color="#FF707878" Offset="0.767"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
    </Style>
    <!-- Fake Eq -->
    <Style TargetType="Ellipse" x:Key="FakeEq">
        <Setter Property="StrokeThickness" Value="10" />
        <Setter Property="Margin" Value="3,3,3,3"/>
        <Setter Property="Width" Value="10"/>
        <Setter Property="Height" Value="10" />
        <Setter Property="Fill">
            <Setter.Value>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FF858689" Offset="0"/>
                    <GradientStop Color="#FFFDFDFD" Offset="1"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
    </Style>

</ResourceDictionary>

App.xaml

XML
App pages. 4/29 updated.
<Application
    x:Class="Radio_Lab.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Radio_Lab"
    RequestedTheme="Light">
    <Application.Resources>
        <ResourceDictionary>

            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Radio_lab_Dictionary.xaml"/>
            </ResourceDictionary.MergedDictionaries>
            <ResourceDictionary.ThemeDictionaries>
                <ResourceDictionary x:Key="Blue" Source="Radio_lab_Dictionary.xaml"/>
                <ResourceDictionary x:Key="Blue_Night" Source="Radio_lab_Dictionary.xaml"/>
                
            </ResourceDictionary.ThemeDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

App.xaml.cs

C#
Backpage for app.xaml
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.ApplicationModel;
using Windows.ApplicationModel.Activation;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

namespace Radio_Lab
{
    /// <summary>
    /// Provides application-specific behavior to supplement the default Application class.
    /// </summary>
    sealed partial class App : Application
    {
        /// <summary>
        /// Initializes the singleton application object.  This is the first line of authored code
        /// executed, and as such is the logical equivalent of main() or WinMain().
        /// </summary>
        public App()
        {
            this.InitializeComponent();
            this.Suspending += OnSuspending;
        }

        /// <summary>
        /// Invoked when the application is launched normally by the end user.  Other entry points
        /// will be used such as when the application is launched to open a specific file.
        /// </summary>
        /// <param name="e">Details about the launch request and process.</param>
        protected override void OnLaunched(LaunchActivatedEventArgs e)
        {
#if DEBUG
            if (System.Diagnostics.Debugger.IsAttached)
            {
                this.DebugSettings.EnableFrameRateCounter = true;
            }
#endif
            Frame rootFrame = Window.Current.Content as Frame;

            // Do not repeat app initialization when the Window already has content,
            // just ensure that the window is active
            if (rootFrame == null)
            {
                // Create a Frame to act as the navigation context and navigate to the first page
                rootFrame = new Frame();

                rootFrame.NavigationFailed += OnNavigationFailed;

                if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
                {
                    //TODO: Load state from previously suspended application
                }

                // Place the frame in the current Window
                Window.Current.Content = rootFrame;
            }

            if (e.PrelaunchActivated == false)
            {
                if (rootFrame.Content == null)
                {
                    // When the navigation stack isn't restored navigate to the first page,
                    // configuring the new page by passing required information as a navigation
                    // parameter
                    rootFrame.Navigate(typeof(MainPage), e.Arguments);
                }
                // Ensure the current window is active
                Window.Current.Activate();
            }
        }

        /// <summary>
        /// Invoked when Navigation to a certain page fails
        /// </summary>
        /// <param name="sender">The Frame which failed navigation</param>
        /// <param name="e">Details about the navigation failure</param>
        void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
        {
            throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
        }

        /// <summary>
        /// Invoked when application execution is being suspended.  Application state is saved
        /// without knowing whether the application will be terminated or resumed with the contents
        /// of memory still intact.
        /// </summary>
        /// <param name="sender">The source of the suspend request.</param>
        /// <param name="e">Details about the suspend request.</param>
        private void OnSuspending(object sender, SuspendingEventArgs e)
        {
            var deferral = e.SuspendingOperation.GetDeferral();
            //TODO: Save application state and stop any background activity
            deferral.Complete();
        }
    }
}

_clock.xaml

XML
The clock page updated. no method for alarms are inserted in this page. 4/29
<Page
    x:Class="Radio_Lab._clock"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Radio_Lab"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <Page.Resources>
    </Page.Resources>
    <Grid x:Name="BackgroundElement">
        <RelativePanel>
            <StackPanel Orientation="Horizontal">
                <Button x:Name="_btn_main" Content="Home" HorizontalAlignment="Left" VerticalAlignment="Top" Click="_btn_main_Click" Style="{StaticResource menu_button}" >
                </Button>
                <Button x:Name="_btn_Clock" Content="Clock" HorizontalAlignment="Left" VerticalAlignment="Top" Click="_btn_Clock_Click" Style="{StaticResource menu_button_selected}" >
                </Button>
                <Button x:Name="_btn_Alarm" Content="Alarms" HorizontalAlignment="Left" VerticalAlignment="Top"  Click="_btn_Alarm_Click" Style="{StaticResource menu_button}"  >
                </Button>
                <Button x:Name="_btn_MyMedia" Content="MyMedia" HorizontalAlignment="Left" VerticalAlignment="Top" Click="_btn_MyMedia_Click" Style="{StaticResource menu_button}"  >
                </Button>
                <Button x:Name="_btn_Stream" Content="Stream" HorizontalAlignment="Left" VerticalAlignment="Top"  Click="_btn_Stream_Click" Style="{StaticResource menu_button}"  >
                </Button>
                <Button x:Name="_btn_Video" Content="Video" HorizontalAlignment="Left" VerticalAlignment="Top" Click="_btn_Video_Click" Style="{StaticResource menu_button}"  >
                </Button>
            </StackPanel>
        </RelativePanel>
        <RelativePanel >
            <TextBox x:Name="clockBox" PlaceholderText="hh:mm" Foreground="#FF2C2C8D" BorderThickness="3,2,1,3" BorderBrush="#FF3A305B" Style="{StaticResource clockBox}" >
            </TextBox>
        </RelativePanel>
    </Grid>
</Page>

_clock.xaml.cs

C#
backpage for clock
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Core;
using Windows.UI.Xaml;
using Windows.System.Threading;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;






// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238

namespace Radio_Lab
{
    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class _clock : Page
    {
        int _timeSkew = 0;
        public _clock()
        {
            this.InitializeComponent();
            //start clock thread timer for updates.
            ThreadPoolTimer _clockTimer = null;
            _clockTimer = ThreadPoolTimer.CreatePeriodicTimer(_clockTimer_Tick, TimeSpan.FromMilliseconds(1000));
        }

        private async void _clockTimer_Tick(ThreadPoolTimer timer)
        {
            var dispatcher = Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher;
            await dispatcher.RunAsync(
              CoreDispatcherPriority.Normal, () =>
              {
                  DateTime _adjustTime = DateTime.Now;
                  clockBox.Text = _adjustTime.AddMinutes(_timeSkew).ToString("hh:mm:ss");
              });
        }

        // Navigation buttons --//
        private void _btn_Clock_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_clock), null);
        }
        private void _btn_Video_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_Video), null);
        }
        private void _btn_Stream_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_Stream), null);
        }
        private void _btn_MyMedia_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_MyMedia), null);
        }
        private void _btn_main_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(MainPage), null);
        }
        private void _btn_Alarm_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_Alarm), null);
        }
    }
}

staion_dataFile.txt

Plain text
This is the station datafile that the stream page looks for.
WMMR 93.3 FM,Philadelphia,Pa,Active Rock,http://17483.live.streamtheworld.com/WMMRFMAACIHR_SC,Everything that rocks,..\logos\wmmr933.png
KROQ 106.7 FM,Pasadena,Ca,Alternative,http://14623.live.streamtheworld.com:3690/KROQFMAAC.aac,World Famous Alternative,..\logos\kroq1067.png
KITS 105.3 FM,San Francisco,Ca,Alternative,http://17793.live.streamtheworld.com:3690/KITSFMAAC.aac,San Francisco's Alternative,..\logos\live105.png
WESN 88.1 FM,Bloomington,Il,Alternative,http://fmt01.egihosting.com:20471/;stream.nsv/;,Alternative,..\logos\WESN_.png
WRR 101.1 FM,Dallas,Tx,Classical,http://18053.live.streamtheworld.com:3690/WRRFMAAC.aac,Classical,..\logos\WRR101_.png
KPAC 1200 AM,San Antonio,Tx,Classical Music,http://stream1.tpr.org/kpacmp3,San Antonio "Classical Music",..\logos\kpac_883.png
KBSZ 1260 AM,Apache Junction,Az,Comedy,http://r1.radioloyalty.net/lmjc3306,Todays Comedy,..\logos\KBSZ1260AM.jpg
WHKO 99.1 FM,Dayton,Oh,Country,http://oom-cmg.streamguys1.com/day991/day991-tunein.mp3,Country,..\logos\K99_.png
KAFF-FM 92.9 FM,Flagstaff,Az,Country,http://18583.live.streamtheworld.com:3690/KAFFFMAAC.aac,Country Radio,..\logos\kaff929.png
KZOS-LP 92.5 FM,San Marcos,Tx,Country,http://50.7.77.114:8428/;,Country,..\logos\KZOS-LP-FM.png
WJXY-FM 93.9,Conway,SC,Country,http://ice5.securenetsystems.net/OUTLAW,Outlaw Country,..\logos\WJXY933.png
KCYY-FM 100.3 Y100,San Antonio,Tx,Country,http://streaming.cmgdigital.com/san1003/san1003-tunein.aac,Country music station,..\logos\y100.png
WBBM 96.3 FM,Chicago,Il,Hip hop,http://17963.live.streamtheworld.com:3690/WBBMFMAACHI.aac,WBBM-FM  known on air as "B96"  is a Top 40 radio station in Chicago owned by CBS Radio.,..\logos\b96_.png
KAOX 107.9 FM,Shelly,Id,Lite,http://50.17.86.217/townsquare-kxltfmaac-ibc3,The best of 80's and 90's and Today,..\logos\KAOX1079.png
KISW 99.9FM,Seatle,Wa,Maintream,http://54.167.207.201/entercom-kiswfmmp3-64,The Rock of Seattle,..\logos\KISW_.png
KSTX 89.1 FM,San Antonio,Tx,news,http://stream1.tpr.org/kstxmp3,San Antonio This American Life -Combined site for National Public Radio affiliate KPAC 88.3 (classical music) and KSTX 89.1 (news  information  and entertainment programs)  and KTXI 90.1 (broadcast in the Texas Hill Country with programs from the KPAC and,..\logos\ktxs_.png
WHIO 1290 AM,Dayton,Oh,News/Sports,http://oom-cmg.streamguys1.com/day957/day957-tunein.aac,News/Sports,..\logos\WHIO987.png
KZMK 101.9 FM,Sierra Vista,Az,Pop,http://ice41.securenetsystems.net/KZMKFM?,Pop Hits,..\logos\KZMK1019FM.png
KISS 99.5,San Antonio,Tx,Rock,http://oom-cmg.streamguys1.com/san995/san995-tunein.aac,Rock music station,..\logos\kiss995.png
NPR,San Antonio,Tx,Talk,http://stream1.tpr.org/kvhlmp3,Highland Lakes - This American Life",..\logos\KTPR_89_9.png
KTXI 1200 AM,San Antonio,Tx,Talk,http://stream1.tpr.org/ktximp3,Hill Country - This American Life",..\logos\ktxi_901.png
KTPR 89.9 FM,San Antonio,Tx,Talk,http://stream1.tpr.org/ktprmp3 ,Big Country - "This American Life",..\logos\KVHL_91_7.png
WDJX 99.7 FM,Louisville,Ky,Top 40 (CHR),http://65.19.131.171/alphalouisville-wdjxfmaac-ibc2?session-id=1597854520,Top 40 (CHR),..\logos\wdjx-logo.png
WBLS 107.5 FM,New York City,Ny,Urban Adult Contemporary,http://18373.live.streamtheworld.com/WBLSFM_SC,Urban Adult Contemporary,..\logos\WBLSFM_.png

_Stream_2.xaml

XML
This is the _stream page for streaming music channels.
<Page
    x:Class="Radio_Lab._Stream_2"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Radio_Lab"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <Page.Resources>
    </Page.Resources>
    <Canvas x:Name="myCanvas" Width="800" Height="500" Style="{StaticResource BackgroundElement}">
        <RelativePanel>
            <StackPanel Orientation="Horizontal">
                <Button x:Name="_btn_main" Content="Home" HorizontalAlignment="Left" VerticalAlignment="Top" Click="_btn_main_Click" Style="{StaticResource menu_button}" >
                </Button>
                <Button x:Name="_btn_Clock" Content="Clock" HorizontalAlignment="Left" VerticalAlignment="Top" Click="_btn_Clock_Click" Style="{StaticResource menu_button}" >
                </Button>
                <Button x:Name="_btn_Alarm" Content="Alarms" HorizontalAlignment="Left" VerticalAlignment="Top"  Click="_btn_Alarm_Click" Style="{StaticResource menu_button}"  >
                </Button>
                <Button x:Name="_btn_MyMedia" Content="MyMedia" HorizontalAlignment="Left" VerticalAlignment="Top" Click="_btn_MyMedia_Click" Style="{StaticResource menu_button}"  >
                </Button>
                <Button x:Name="_btn_Stream" Content="Stream" HorizontalAlignment="Left" VerticalAlignment="Top"  Click="_btn_Stream_Click" Style="{StaticResource menu_button_selected}"  >
                </Button>
                <Button x:Name="_btn_Video" Content="Video" HorizontalAlignment="Left" VerticalAlignment="Top" Click="_btn_Video_Click" Style="{StaticResource menu_button}"  >
                </Button>
            </StackPanel>
        </RelativePanel>
        <StackPanel Margin="0,60,0,0">
            <RelativePanel>
                <StackPanel>
                    <Button x:Name="_btn_Radio_1"  Width="150" Height="40" Margin="5,0,0,0" Foreground="White" Style="{StaticResource selection_buttons}" Click="_btn_Radio_1_Click"  >
                        <Image x:Name="btn_Rdo_1_Image" MaxWidth="60" MaxHeight="40"/>
                    </Button>
                    <Button x:Name="_btn_Radio_2" Width="150" Height="40" Margin="5,5,0,0" Foreground="White" Style="{StaticResource selection_buttons}" Click="_btn_Radio_2_Click" >
                    </Button>
                    <Button x:Name="_btn_Radio_3" Width="150" Height="40" Margin="5,5,0,0" Foreground="White" Style="{StaticResource selection_buttons}" Click="_btn_Radio_3_Click">
                    </Button>
                    <Button x:Name="_btn_Radio_4" Width="150" Height="40" Margin="5,0,0,0" Foreground="White" Style="{StaticResource selection_buttons}" Click="_btn_Radio_4_Click">
                    </Button>
                    <Button x:Name="_btn_Radio_5" Width="150" Height="40" Margin="5,5,0,0" Foreground="White" Style="{StaticResource selection_buttons}" Click="_btn_Radio_5_Click">
                    </Button>
                    <Button x:Name="_btn_Radio_6" Width="150" Height="40" Margin="5,5,0,0" Foreground="White" Style="{StaticResource selection_buttons}" Click="_btn_Radio_6_Click">
                    </Button>
                    <Button x:Name="_btn_Radio_7" Width="150" Height="40" Margin="5,5,0,0" Foreground="White" Style="{StaticResource selection_buttons}" Click="_btn_Radio_7_Click">
                    </Button>
                    <Button x:Name="_btn_Radio_8" Width="150" Height="40" Margin="5,5,0,0" Foreground="White" Style="{StaticResource selection_buttons}" Click="_btn_Radio_8_Click">
                    </Button>
                    <Button x:Name="_btn_Radio_9" Width="150" Height="40" Margin="5,5,0,0" Foreground="White" Style="{StaticResource selection_buttons}" Click="_btn_Radio_9_Click">
                    </Button>
                </StackPanel>
                <RelativePanel Margin="165,310,0,0">
                    <MediaElement x:Name="_MediaPlayer" AudioCategory="BackgroundCapableMedia" Grid.RowSpan="1"  />
                    <StackPanel Orientation="Horizontal"  Grid.Row="1" HorizontalAlignment="Center">
                    </StackPanel>
                </RelativePanel>
                <Slider x:Name="timeslew" HorizontalAlignment="Left" Width="530" Margin="165,320,0,0" Height="36" Minimum="0" Maximum="15" ValueChanged="timeSlew" Style="{StaticResource MusicSlew}" Value="13"  />
                <Slider x:Name="slider" HorizontalAlignment="Left" Width="530" Margin="165,360,0,0" Height="40" Minimum="0" Maximum="10" ValueChanged="ValueChanged" Style="{StaticResource CircleSlider}"  />
                <Button x:Name="configure" Grid.Row="1" Margin="700,360,0,0" Click="configure_Click">
                    <Button.ContentTemplate>
                        <DataTemplate>
                            <Image x:Name="_Img_Configure" Source="..\images\gear.png" Stretch="Fill" Height="25" Width="25" />
                        </DataTemplate>
                    </Button.ContentTemplate>
                </Button>
                <TextBox x:Name="_txtBoxClock" Foreground="AntiqueWhite" Opacity=".8" Margin="175,5,0,0" HorizontalAlignment="Center" Text="Time" FontSize="25" Height="40" MinWidth="80" FontWeight="Bold" BorderBrush="#66FFFFFF" SelectionHighlightColor="#FF05375F" BorderThickness="0">
                    <TextBox.Background>
                        <SolidColorBrush Color="#66FFFFFF" Opacity="0.2"/>
                    </TextBox.Background>
                </TextBox>
                <TextBox x:Name="txtBxNotices" Foreground="AntiqueWhite" Opacity=".8" Margin="275,5,0,0" HorizontalAlignment="Left" MinWidth="120"  MaxWidth="350" TextWrapping="Wrap" Text="Notices" VerticalAlignment="Top" SelectionHighlightColor="#FF05375F" BorderBrush="#66FFFFFF" BorderThickness="0"  >
                    <TextBox.Background>
                        <SolidColorBrush Color="#66FFFFFF" Opacity="0.2"/>
                    </TextBox.Background>
                </TextBox>
                <TextBox x:Name="txtBxStationId" Foreground="AntiqueWhite" Opacity=".8" Margin="175,50,0,0" HorizontalAlignment="Left" TextWrapping="NoWrap" Visibility="Visible" MinWidth="60" BorderBrush="#66FFFFFF" SelectionHighlightColor="#FF05375F" BorderThickness="0" >
                    <TextBox.Background>
                        <SolidColorBrush Color="#66FFFFFF" Opacity="0.2"/>
                    </TextBox.Background>
                </TextBox>
            </RelativePanel>
        </StackPanel>
        <RelativePanel Margin="170,300,0,0" Width="230" Height="90">
            <StackPanel  Margin="5,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="A1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="A2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="A3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="A4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="A5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="15,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="B1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="B2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="B3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="B4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="B5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="25,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="C1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="C2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="C3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="C4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="C5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="35,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="D1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="D2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="D3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="D4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="D5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="45,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="E1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="E2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="E3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="E4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="E5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="55,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="F1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="F2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="F3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="F4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="F5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="65,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="G1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="G2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="G3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="G4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="G5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="75,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="H1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="H2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="H3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="H4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="H5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="85,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="I1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="I2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="I3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="I4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="I5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="95,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="J1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="J2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="J3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="J4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="J5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="105,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="K1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="K2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="K3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="K4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="K5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="115,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="L1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="L2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="L3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="L4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="L5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="125,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="M1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="M2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="M3"  Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="M4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="M5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="135,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="N1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="N2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="N3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="N4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="N5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="145,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="O1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="O2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="O3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="O4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="O5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="155,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="P1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="P2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="P3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="P4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="P5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="165,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="Q1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="Q2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="Q3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="Q4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="Q5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="175,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="R1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="R2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="R3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="R4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="R5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="185,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="S1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="S2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="S3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="S4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="S5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="195,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="T1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="T2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="T3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="T4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="T5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
            <StackPanel Margin="205,5,5,5" Width="20" Height="80" >
                <Ellipse x:Name="U1" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="U2" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="U3" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="U4" Style="{StaticResource FakeEq}">
                </Ellipse>
                <Ellipse x:Name="U5" Style="{StaticResource FakeEq}">
                </Ellipse>
            </StackPanel>
        </RelativePanel>
        <RelativePanel Margin="700,10,0,0">
            <Ellipse x:Name="Wifi"  Margin="20,50,0,0" StrokeThickness="20" Width="20" Height="20" >
                <Ellipse.Fill>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="#FFE46D36" Offset="0"/>
                        <GradientStop Color="#FFE6F014" Offset="1"/>
                    </LinearGradientBrush>
                </Ellipse.Fill>
            </Ellipse>
        </RelativePanel>
    </Canvas> 
</Page>

_Stream_2.xaml.cs

C#
This is the backpage.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using Windows.Storage;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Collections.ObjectModel;
using Windows.UI.Core;
using Windows.Media.Audio;
using Windows.System.Threading;
using Windows.Devices.Gpio;
using Windows.Networking.Connectivity;
using Windows.UI.Popups;
using System.Net.NetworkInformation;
using Windows.UI.Xaml.Media.Imaging;
using Windows.UI.Xaml.Shapes;
using Windows.Devices.Input;
using Windows.Storage.Streams;





// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238

namespace Radio_Lab
{
    public class DigiRadios
    {
        public string StationName { set; get; }
        public string City { get; set; }
        public string State { get; set; }
        public string Genre { get; set; }
        public string dStreams { get; set; }
        public string Description { get; set; }
        public string Logo_Image { get; set; }
    }
    public class eq_Dots
    {
        public string dot_Color { get; set; }
        public int dot_direction { get; set; }
        public int dot_rate { get; set; }
        public double dot_intensity { get; set; }
        public double[,] dot_position { get; set; }
}

    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class _Stream_2 : Page
    {
        public eq_Dots[] these_dots = new eq_Dots[100];    
        ObservableCollection<DigiRadios> datalist = new ObservableCollection<DigiRadios>();
        ObservableCollection<DigiRadios> finallist = new ObservableCollection<DigiRadios>();
        // seting up arrays for data from the read file
        const int AS = 19;
        string[] stationId = new string[AS];
        string[] city = new string[AS];
        string[] state = new string[AS];
        string[] genre = new string[AS];
        string[] streams = new string[AS];
        string[] description = new string[AS];
        string[] logo_Img = new string[AS];
        string[] digitalSource = new string[AS];
        string[] RadioBlob = new string[AS];
        
        // timer -//
        int _timeSkew = 0;
        ThreadPoolTimer _fake_eq_timer = null;
        TimeSpan period = TimeSpan.FromSeconds(2);

        //-- Wifi light --/
        private const int LED_PIN = 5;
        private GpioPin pin;
        private GpioPinValue pinValue = GpioPinValue.Low;
        GpioController gpio = GpioController.GetDefault();

        /// <summary>
        /// below are parts for the image background.
        /// </summary>
        const int constant = 42;
        // image varables. 
        double fade = .5;
        double fadeoff = .1;
        int myDuration = 1000; //duration of background images
        double calcSquared = 800 / 7;

        Image pict0 = new Image();
        Image pict1 = new Image();
        Image pict2 = new Image();
        Image pict3 = new Image();
        Image pict4 = new Image();
        Image pict5 = new Image();
        Image pict6 = new Image();
        Image pict7 = new Image();
        Image pict8 = new Image();
        Image pict9 = new Image();
        Image pict10 = new Image();
        Image pict11 = new Image();
        Image pict12 = new Image();
        Image pict13 = new Image();
        Image pict14 = new Image();
        Image pict15 = new Image();
        Image pict16 = new Image();
        Image pict17 = new Image();
        Image pict18 = new Image();
        Image pict19 = new Image();
        Image pict20 = new Image();
        Image pict21 = new Image();
        Image pict22 = new Image();
        Image pict23 = new Image();
        Image pict24 = new Image();
        Image pict25 = new Image();
        Image pict26 = new Image();
        Image pict27 = new Image();
        Image pict28 = new Image();
        Image pict29 = new Image();
        Image pict30 = new Image();
        Image pict31 = new Image();
        Image pict32 = new Image();
        Image pict33 = new Image();
        Image pict34 = new Image();
        Image pict35 = new Image();


        public _Stream_2()
        {
            this.InitializeComponent();
            //dotMovements            
            digitalSource[0] = "http://ice5.securenetsystems.net:80/WKTZ";
            InitGPIO();
            
            CreateAndPopulate(GetBitmapsSources());

            LinearGradientBrush myGradientBrush = new LinearGradientBrush();
            myGradientBrush.StartPoint = new Point(0.5, 0);
            myGradientBrush.EndPoint = new Point(0.5, 1);
            GradientStop myColor1 = new GradientStop();
            myColor1.Color = Windows.UI.Colors.Navy;
            myColor1.Offset = .2;
            GradientStop myColor2 = new GradientStop();
            myColor2.Color = Windows.UI.Colors.Black;
            myColor2.Offset = 1;
            myGradientBrush.GradientStops.Add(myColor1);
            myGradientBrush.GradientStops.Add(myColor2);
            
            myCanvas.Background = myGradientBrush;

            int butonAdjuster = (800 / 6) - 5;
            _btn_main.Width = butonAdjuster;
            _btn_Clock.Width = butonAdjuster;
            _btn_Alarm.Width = butonAdjuster;
            _btn_MyMedia.Width = butonAdjuster;
            _btn_Stream.Width = butonAdjuster;
            _btn_Video.Width = butonAdjuster;



            slider.Value = _MediaPlayer.Volume* 10;
            bool fileFart = isFilePresent("selected_stations.txt");
            //  clock feature
            ThreadPoolTimer _clockTimer = null;
            ThreadPoolTimer _wifi_chck_Tmr = null;
            _wifi_chck_Tmr = ThreadPoolTimer.CreatePeriodicTimer(_wifi_chck_Tmr_Tick, TimeSpan.FromMinutes(2));
            _clockTimer = ThreadPoolTimer.CreatePeriodicTimer(_clockTimer_Tick, TimeSpan.FromMilliseconds(1000));
            Wifi.Visibility = Visibility.Collapsed;
            ThreadPoolTimer _ImageTimer = null;
            _ImageTimer = ThreadPoolTimer.CreatePeriodicTimer(_ImageTimer_Tick, TimeSpan.FromMilliseconds(myDuration));

            //_fake_eq_timer = ThreadPoolTimer.CreatePeriodicTimer(_fake_eq_timer_Tick, TimeSpan.FromMilliseconds(0));
            _fake_eq_off();
            if (fileFart == false)
            {
                txtBxNotices.Text = "Please set stations prefences. By clicking the gears to access the configuration settings.";
                txtBxNotices.Visibility = Visibility.Visible;
            }else
            { readlocaldatafile(); }

            SolidColorBrush greenbrush = new SolidColorBrush(Windows.UI.Colors.Green);
        }

       

        //-- Wifi --/
        private void InitGPIO()
        {
            try
            {
                if (gpio == null)
                {
                    pin = null;
                    return;
                }
                pin = gpio.OpenPin(LED_PIN);
                if (pin == null)
                {
                    return;
                }
                pin.Write(GpioPinValue.High);
                pinValue = GpioPinValue.High;
                pin.SetDriveMode(GpioPinDriveMode.Output);
            }catch
            {
            }
        
        }
        private void wifiCheck()
        {
            ThreadPoolTimer _lightTimer = null;
            bool isWLANConnection = false;
            bool isInternetConnected = NetworkInterface.GetIsNetworkAvailable();
            if (isInternetConnected == true)
            {
                ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();
                isWLANConnection = (InternetConnectionProfile == null) ? false : InternetConnectionProfile.IsWlanConnectionProfile;
            }
            if (isWLANConnection == true)
            {
                if (_lightTimer != null)
                {
                    _lightTimer = null;  // nulls the timer to turn off the light\
                    _lightTimer.Cancel();
                }
            }
            else
            {
                if (_lightTimer == null)
                {
                    _lightTimer = ThreadPoolTimer.CreatePeriodicTimer(lightTimer_Tick, TimeSpan.FromMilliseconds(400));
                }
            }
        }
        private async void lightTimer_Tick(ThreadPoolTimer timer)
        {
            var dispatcher = Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher;
            await dispatcher.RunAsync(
             CoreDispatcherPriority.Normal, () =>
             {
                 toggleLight();
             });
        }
        private void toggleLight()
        {
            try
            {
                if (pin != null)
                {
                    if (pinValue == GpioPinValue.High)
                    {
                        pinValue = GpioPinValue.Low;
                        Wifi.Visibility = Visibility.Collapsed;

                    }
                    else
                    {
                        pinValue = GpioPinValue.High;
                        Wifi.Visibility = Visibility.Visible;
                    }
                    if (pin != null)
                    {
                        pin.Write(pinValue);
                    }

                }
            }
            catch (Exception e)
            {
                Bfart(e);
            }
        }
        private async void Bfart(Exception e)
        {
            string f = e.ToString();
            var dialog = new MessageDialog("An error occurred: '{0}'", f);
            await dialog.ShowAsync();
        }

        //-- Check for config file and redirect --//
        public async void createfileinlocalData()
        {
            //Create dataFile.txt in LocalFolder and write My text to it 
            StorageFolder localFolder = ApplicationData.Current.LocalFolder;
            var placementfolder =  localFolder.Path;
            StorageFile sampleFile = await localFolder.CreateFileAsync("staion_selection_dataFileABC.txt");     
            await FileIO.WriteTextAsync(sampleFile, "My text");
            txtBxNotices.Text = localFolder.ToString();          
        }
        public bool isFilePresent(string fileName)
        {
            try
            {
                var item = ApplicationData.Current.LocalFolder.TryGetItemAsync(fileName);
                if (item != null)
                {
                    return true;
                }
            }catch
            {
            }
            return false;
  
        }
        public async void readlocaldatafile()
        {
            try
            {
                StorageFolder localFolder = ApplicationData.Current.LocalFolder;
                var sampleFile = await localFolder.OpenStreamForReadAsync("selected_stations.txt");
                if (sampleFile != null)
                {
                    //counts = TotalLines(sampleFile);
                    string linesfromfile;
                    int i = 0;
                    using (StreamReader streamReader = new StreamReader(sampleFile))
                    {
                        while (!streamReader.EndOfStream)
                        {
                            linesfromfile = streamReader.ReadLine();
                            string[] results = linesfromfile.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                            stationId[i] = results[0].ToString();
                            city[i] = results[1].ToString();
                            state[i] = results[2].ToString();
                            genre[i] = results[3].ToString();
                            streams[i] = results[4].ToString();
                            description[i] = results[5].ToString();
                            logo_Img[i] = results[6].ToString();
                            i++;
                        }
                    }
                    int ii = 0;
                    foreach (string value in stationId)
                    {
                        DigiRadios dr1 = new DigiRadios() { StationName = stationId[ii], City = city[ii], State = state[ii], Genre = genre[ii], dStreams = streams[ii], Description = description[ii], Logo_Image = logo_Img[ii] };
                        datalist.Add(dr1);
                        switch(ii)
                        {
                            case 0:
                                _btn_Radio_1.Content = dr1.StationName;
                                // btn_Rdo_1_Image.Source = new BitmapImage(new Uri(dr1.Logo_Image));
                                digitalSource[ii] = dr1.dStreams;
                                RadioBlob[ii] = dr1.Genre + " " + dr1.StationName + " " + dr1.City;              
                                break;
                            case 1:
                                _btn_Radio_2.Content = dr1.StationName;
                                digitalSource[ii] = dr1.dStreams;
                                RadioBlob[ii] = dr1.Genre + " " + dr1.StationName + " " + dr1.City;
                                break;
                            case 2:
                                _btn_Radio_3.Content = dr1.StationName;
                                digitalSource[ii] = dr1.dStreams;
                                RadioBlob[ii] = dr1.Genre + " " + dr1.StationName + " " + dr1.City;
                                break;
                            case 3:
                                _btn_Radio_4.Content = dr1.StationName;
                                digitalSource[ii] = dr1.dStreams;
                                RadioBlob[ii] = dr1.Genre + " " + dr1.StationName + " " + dr1.City;
                                break;
                            case 4:
                                _btn_Radio_5.Content = dr1.StationName;
                                digitalSource[ii] = dr1.dStreams;
                                RadioBlob[ii] = dr1.Genre + " " + dr1.StationName + " " + dr1.City;
                                break;
                            case 5:
                                _btn_Radio_6.Content = dr1.StationName;
                                digitalSource[ii] = dr1.dStreams;
                                RadioBlob[ii] = dr1.Genre + " " + dr1.StationName + " " + dr1.City;
                                break;
                            case 6:
                                _btn_Radio_7.Content = dr1.StationName;
                                digitalSource[ii] = dr1.dStreams;
                                RadioBlob[ii] = dr1.Genre + " " + dr1.StationName + " " + dr1.City;
                                break;
                            case 7:
                                _btn_Radio_8.Content = dr1.StationName;
                                digitalSource[ii] = dr1.dStreams;
                                RadioBlob[ii] = dr1.Genre + " " + dr1.StationName + " " + dr1.City;
                                break;
                            case 8:
                                _btn_Radio_9.Content = dr1.StationName;
                                digitalSource[ii] = dr1.dStreams;
                                RadioBlob[ii] = dr1.Genre + " " + dr1.StationName + " " + dr1.City;
                                break;
                        }
                        ii++;
                    }
                }
            }
            catch (FileNotFoundException e)
            {
                txtBxNotices.Text = "404 file not found.";
            }
            catch
            {
            }
        }





        // Navigation buttons --//
        private void configure_Click(object sender, RoutedEventArgs e)
        { 
            this.Frame.Navigate(typeof(app_pages._Stream_Config), null);
        }
        private void _btn_Clock_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_clock), null);
        }
        private void _btn_Video_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_Video), null);
        }
        private void _btn_Stream_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_Stream), null);
        }
        private void _btn_MyMedia_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_MyMedia), null);
        }
        private void _btn_main_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(MainPage), null);
        }
        private void _btn_Alarm_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_Alarm), null);
        }
        private void ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
        {
            _MediaPlayer.Volume = e.NewValue / 10;
        }

        private void _btn_Radio_1_Click(object sender, RoutedEventArgs e)
        {
            _btn_Radio_1.Opacity = .90;
            _MediaPlayer.Source = new Uri(digitalSource[0]);
            _play_or_not();
            txtBxStationId.Text = RadioBlob[0];
        }
        private void _btn_Radio_2_Click(object sender, RoutedEventArgs e)
        {
            _btn_Radio_1.Opacity = .90;
            _MediaPlayer.Source = new Uri(digitalSource[1]);
            txtBxStationId.Text = RadioBlob[1];
            _play_or_not();

        }
        private void _btn_Radio_3_Click(object sender, RoutedEventArgs e)
        {
            _btn_Radio_1.Opacity = .90;
            _MediaPlayer.Source = new Uri(digitalSource[2]);
            txtBxStationId.Text = RadioBlob[2];
            _play_or_not();
        }
        private void _btn_Radio_4_Click(object sender, RoutedEventArgs e)
        {
            _btn_Radio_1.Opacity = .90;
            _MediaPlayer.Source = new Uri(digitalSource[3]);
            txtBxStationId.Text = RadioBlob[3];
            _play_or_not();
        }
        private void _btn_Radio_5_Click(object sender, RoutedEventArgs e)
        {
            _btn_Radio_1.Opacity = .90;
            _MediaPlayer.Source = new Uri(digitalSource[4]);
            txtBxStationId.Text = RadioBlob[4];
            _play_or_not();
        }
        private void _btn_Radio_6_Click(object sender, RoutedEventArgs e)
        {
            _btn_Radio_1.Opacity = .90;
            _MediaPlayer.Source = new Uri(digitalSource[5]);
            txtBxStationId.Text = RadioBlob[5];
            _play_or_not();
        }
        private void _btn_Radio_7_Click(object sender, RoutedEventArgs e)
        {
            _btn_Radio_1.Opacity = .90;
            _MediaPlayer.Source = new Uri(digitalSource[6]);
            txtBxStationId.Text = RadioBlob[6];
            _play_or_not();
        }
        private void _btn_Radio_8_Click(object sender, RoutedEventArgs e)
        {
            _btn_Radio_1.Opacity = .90;
            _MediaPlayer.Source = new Uri(digitalSource[7]);
            txtBxStationId.Text = RadioBlob[7];
            _play_or_not();
        }
        private void _btn_Radio_9_Click(object sender, RoutedEventArgs e)
        {
            _btn_Radio_1.Opacity = .90;
            _MediaPlayer.Source = new Uri(digitalSource[8]);
            txtBxStationId.Text = RadioBlob[8];
            _play_or_not();
        }

        private void IsPlaying(bool flag)
        {

        }
        private void _play_or_not()
        {
            IsPlaying(true);
            _play();
            //  }
            //  else
            // {
            //     _no_play();
            // }
        }
        private void _play()
        {
            _fake_eq_timer = ThreadPoolTimer.CreatePeriodicTimer(_fake_eq_timer_Tick, TimeSpan.FromMilliseconds(0));
            _MediaPlayer.Play();
            _fake_eq_timer = ThreadPoolTimer.CreatePeriodicTimer(_fake_eq_timer_Tick, TimeSpan.FromMilliseconds(250));
            timeslew.Value = 15;


        }
        private void _no_play()
        {
            _MediaPlayer.Pause();
            _fake_eq_timer.Cancel();
            //btnPlay.Content = "Play";
        }

        private async void _ImageTimer_Tick(ThreadPoolTimer timer)
        {
            var dispatcher = Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher;
            await dispatcher.RunAsync(
              CoreDispatcherPriority.Normal, () =>
              {
                  ChangeImages(GetBitmapsSources());

              });
        }
        private async void _clockTimer_Tick(ThreadPoolTimer timer)
        {
            var dispatcher = Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher;
            await dispatcher.RunAsync(
              CoreDispatcherPriority.Normal, () =>
              {
                  DateTime _adjustTime = DateTime.Now;
                  _txtBoxClock.Text = _adjustTime.AddMinutes(_timeSkew).ToString("hh:mm");
              });
        }
        private async void _fake_eq_timer_Tick(ThreadPoolTimer timer)
        {
            var dispatcher = Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher;
            await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
            {
                _fake_eq_passon();
                _fake_eq_run();
            });
        }
        private async void _wifi_chck_Tmr_Tick(ThreadPoolTimer timer)
        {
            var dispatcher = Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher;
            await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
            {
                wifiCheck();
            });
        }
        private void _fake_eq_effect()
        {

        }

        private void _fake_eq_off()
        {
            A1.Visibility = Visibility.Collapsed;
            A2.Visibility = Visibility.Collapsed;
            A3.Visibility = Visibility.Collapsed;
            A4.Visibility = Visibility.Collapsed;
            A5.Visibility = Visibility.Collapsed;
            B1.Visibility = Visibility.Collapsed;
            B2.Visibility = Visibility.Collapsed;
            B3.Visibility = Visibility.Collapsed;
            B4.Visibility = Visibility.Collapsed;
            B5.Visibility = Visibility.Collapsed;
            C1.Visibility = Visibility.Collapsed;
            C2.Visibility = Visibility.Collapsed;
            C3.Visibility = Visibility.Collapsed;
            C4.Visibility = Visibility.Collapsed;
            C5.Visibility = Visibility.Collapsed;
            D1.Visibility = Visibility.Collapsed;
            D2.Visibility = Visibility.Collapsed;
            D3.Visibility = Visibility.Collapsed;
            D4.Visibility = Visibility.Collapsed;
            D5.Visibility = Visibility.Collapsed;
            E1.Visibility = Visibility.Collapsed;
            E2.Visibility = Visibility.Collapsed;
            E3.Visibility = Visibility.Collapsed;
            E4.Visibility = Visibility.Collapsed;
            E5.Visibility = Visibility.Collapsed;
            F1.Visibility = Visibility.Collapsed;
            F2.Visibility = Visibility.Collapsed;
            F3.Visibility = Visibility.Collapsed;
            F4.Visibility = Visibility.Collapsed;
            F5.Visibility = Visibility.Collapsed;
            G1.Visibility = Visibility.Collapsed;
            G2.Visibility = Visibility.Collapsed;
            G3.Visibility = Visibility.Collapsed;
            G4.Visibility = Visibility.Collapsed;
            G5.Visibility = Visibility.Collapsed;
            H1.Visibility = Visibility.Collapsed;
            H2.Visibility = Visibility.Collapsed;
            H3.Visibility = Visibility.Collapsed;
            H4.Visibility = Visibility.Collapsed;
            H5.Visibility = Visibility.Collapsed;
            I1.Visibility = Visibility.Collapsed;
            I2.Visibility = Visibility.Collapsed;
            I3.Visibility = Visibility.Collapsed;
            I4.Visibility = Visibility.Collapsed;
            I5.Visibility = Visibility.Collapsed;
            J1.Visibility = Visibility.Collapsed;
            J2.Visibility = Visibility.Collapsed;
            J3.Visibility = Visibility.Collapsed;
            J4.Visibility = Visibility.Collapsed;
            J5.Visibility = Visibility.Collapsed;
            K1.Visibility = Visibility.Collapsed;
            K2.Visibility = Visibility.Collapsed;
            K3.Visibility = Visibility.Collapsed;
            K4.Visibility = Visibility.Collapsed;
            K5.Visibility = Visibility.Collapsed;
            L1.Visibility = Visibility.Collapsed;
            L2.Visibility = Visibility.Collapsed;
            L3.Visibility = Visibility.Collapsed;
            L4.Visibility = Visibility.Collapsed;
            L5.Visibility = Visibility.Collapsed;
            M1.Visibility = Visibility.Collapsed;
            M2.Visibility = Visibility.Collapsed;
            M3.Visibility = Visibility.Collapsed;
            M4.Visibility = Visibility.Collapsed;
            M5.Visibility = Visibility.Collapsed;
            N1.Visibility = Visibility.Collapsed;
            N2.Visibility = Visibility.Collapsed;
            N3.Visibility = Visibility.Collapsed;
            N4.Visibility = Visibility.Collapsed;
            N5.Visibility = Visibility.Collapsed;
            O1.Visibility = Visibility.Collapsed;
            O2.Visibility = Visibility.Collapsed;
            O3.Visibility = Visibility.Collapsed;
            O4.Visibility = Visibility.Collapsed;
            O5.Visibility = Visibility.Collapsed;
            P1.Visibility = Visibility.Collapsed;
            P2.Visibility = Visibility.Collapsed;
            P3.Visibility = Visibility.Collapsed;
            P4.Visibility = Visibility.Collapsed;
            P5.Visibility = Visibility.Collapsed;
            Q1.Visibility = Visibility.Collapsed;
            Q2.Visibility = Visibility.Collapsed;
            Q3.Visibility = Visibility.Collapsed;
            Q4.Visibility = Visibility.Collapsed;
            Q5.Visibility = Visibility.Collapsed;
            R1.Visibility = Visibility.Collapsed;
            R2.Visibility = Visibility.Collapsed;
            R3.Visibility = Visibility.Collapsed;
            R4.Visibility = Visibility.Collapsed;
            R5.Visibility = Visibility.Collapsed;
            S1.Visibility = Visibility.Collapsed;
            S2.Visibility = Visibility.Collapsed;
            S3.Visibility = Visibility.Collapsed;
            S4.Visibility = Visibility.Collapsed;
            S5.Visibility = Visibility.Collapsed;
            T1.Visibility = Visibility.Collapsed;
            T2.Visibility = Visibility.Collapsed;
            T3.Visibility = Visibility.Collapsed;
            T4.Visibility = Visibility.Collapsed;
            T5.Visibility = Visibility.Collapsed;
            U1.Visibility = Visibility.Collapsed;
            U2.Visibility = Visibility.Collapsed;
            U3.Visibility = Visibility.Collapsed;
            U4.Visibility = Visibility.Collapsed;
            U5.Visibility = Visibility.Collapsed;


        }
        private void _fake_eq_run()
        {
            Random rnd = new Random((int)DateTime.Now.Ticks & 0x0000FFFF);
            int level = rnd.Next(1, 6);
            SolidColorBrush zippy = new SolidColorBrush(Windows.UI.Colors.LightSteelBlue);
            txtBxNotices.Text = level.ToString();

            switch (level)
            {
                case 1:
                    U1.Visibility = Visibility.Visible;
                    U1.Fill = FartKnocker();
                    U1.Opacity = .25;
                    U2.Visibility = Visibility.Visible;
                    U2.Fill = FartKnocker();
                    U2.Opacity = .25;
                    U3.Visibility = Visibility.Visible;
                    U3.Fill = FartKnocker();
                    U3.Opacity = .25;
                    U4.Visibility = Visibility.Visible;
                    U4.Fill = FartKnocker();
                    U4.Opacity = .25;
                    U5.Visibility = Visibility.Visible;
                    U5.Fill = FartKnocker();
                    U5.Opacity = .25;
                    break;
                case 2:
                    U1.Visibility = Visibility.Visible;
                    U1.Fill = FartKnocker();
                    U1.Opacity = .25;
                    U2.Visibility = Visibility.Visible;
                    U2.Fill = FartKnocker();
                    U2.Opacity = .25;
                    U3.Visibility = Visibility.Visible;
                    U3.Fill = FartKnocker();
                    U3.Opacity = .25;
                    U4.Visibility = Visibility.Visible;
                    U4.Fill = FartKnocker();
                    U4.Opacity = .25;
                    U5.Visibility = Visibility.Visible;
                    U5.Fill = zippy;
                    U5.Opacity = .90;
                    break;
                case 3:
                    U1.Visibility = Visibility.Visible;
                    U1.Fill = FartKnocker();
                    U1.Opacity = .25;
                    U2.Visibility = Visibility.Visible;
                    U2.Fill = FartKnocker();
                    U2.Opacity = .25;
                    U3.Visibility = Visibility.Visible;
                    U3.Fill = FartKnocker();
                    U3.Opacity = .25;
                    U4.Visibility = Visibility.Visible;
                    U4.Fill = zippy;
                    U4.Opacity = .90;
                    U5.Visibility = Visibility.Visible;
                    U5.Fill = zippy;
                    U5.Opacity = .90;
                    break;
                case 4:
                    U1.Visibility = Visibility.Visible;
                    U1.Fill = FartKnocker();
                    U1.Opacity = .25;
                    U2.Visibility = Visibility.Visible;
                    U2.Fill = FartKnocker();
                    U2.Opacity = .25;
                    U3.Visibility = Visibility.Visible;
                    U3.Fill = zippy;
                    U3.Opacity = .90;
                    U4.Visibility = Visibility.Visible;
                    U4.Fill = zippy;
                    U4.Opacity = .90;
                    U5.Visibility = Visibility.Visible;
                    U5.Fill = zippy;
                    U5.Opacity = .90;
                    break;
                case 5:
                    U1.Visibility = Visibility.Visible;
                    U1.Fill = FartKnocker();
                    U1.Opacity = .25;
                    U2.Visibility = Visibility.Visible;
                    U2.Fill = zippy;
                    U2.Opacity = .90;
                    U3.Visibility = Visibility.Visible;
                    U3.Fill = zippy;
                    U3.Opacity = .90;
                    U4.Visibility = Visibility.Visible;
                    U4.Fill = zippy;
                    U4.Opacity = .90;
                    U5.Visibility = Visibility.Visible;
                    U5.Fill = zippy;
                    U5.Opacity = .90;
                    break;
                case 6:
                    U1.Visibility = Visibility.Visible;
                    U1.Fill = zippy;
                    U1.Opacity = .90;
                    U2.Visibility = Visibility.Visible;
                    U2.Fill = zippy;
                    U2.Opacity = .90;
                    U3.Visibility = Visibility.Visible;
                    U3.Fill = zippy;
                    U3.Opacity = .90;
                    U4.Visibility = Visibility.Visible;
                    U4.Fill = zippy;
                    U4.Opacity = .90;
                    U5.Visibility = Visibility.Visible;
                    U5.Fill = zippy;
                    U5.Opacity = .90;
                    break;
            }
        }
        private void _fake_eq_passon()
        {
            A1.Visibility = B1.Visibility;
            A2.Visibility = B2.Visibility;
            A3.Visibility = B3.Visibility;           
            A4.Visibility = B4.Visibility;
            A5.Visibility = B5.Visibility;
            A1.Fill = B1.Fill;
            A2.Fill = B2.Fill;
            A3.Fill = B3.Fill;
            A4.Fill = B4.Fill;
            A5.Fill = B5.Fill;
            A1.Opacity = B1.Opacity;
            A2.Opacity = B2.Opacity;
            A3.Opacity = B3.Opacity;
            A4.Opacity = B4.Opacity;
            A5.Opacity = B5.Opacity;

            B1.Visibility = C1.Visibility;
            B2.Visibility = C2.Visibility;
            B3.Visibility = C3.Visibility;
            B4.Visibility = C4.Visibility;
            B5.Visibility = C5.Visibility;
            B1.Fill = C1.Fill;
            B2.Fill = C2.Fill;
            B3.Fill = C3.Fill;
            B4.Fill = C4.Fill;
            B5.Fill = C5.Fill;
            B1.Opacity = C1.Opacity;
            B2.Opacity = C2.Opacity;
            B3.Opacity = C3.Opacity;
            B4.Opacity = C4.Opacity;
            B5.Opacity = C5.Opacity;

            C1.Visibility = D1.Visibility;
            C2.Visibility = D2.Visibility;
            C3.Visibility = D3.Visibility;
            C4.Visibility = D4.Visibility;
            C5.Visibility = D5.Visibility;
            C1.Fill = D1.Fill;
            C2.Fill = D2.Fill;
            C3.Fill = D3.Fill;
            C4.Fill = D4.Fill;
            C5.Fill = D5.Fill;
            C1.Opacity = D1.Opacity;
            C2.Opacity = D2.Opacity;
            C3.Opacity = D3.Opacity;
            C4.Opacity = D4.Opacity;
            C5.Opacity = D5.Opacity;

            D1.Visibility = E1.Visibility;
            D2.Visibility = E2.Visibility;
            D3.Visibility = E3.Visibility;
            D4.Visibility = E4.Visibility;
            D5.Visibility = E5.Visibility;
            D1.Fill = E1.Fill;
            D2.Fill = E2.Fill;
            D3.Fill = E3.Fill;
            D4.Fill = E4.Fill;
            D5.Fill = E5.Fill;
            D1.Opacity = E1.Opacity;
            D2.Opacity = E2.Opacity;
            D3.Opacity = E3.Opacity;
            D4.Opacity = E4.Opacity;
            D5.Opacity = E5.Opacity;

            E1.Visibility = F1.Visibility;
            E2.Visibility = F2.Visibility;
            E3.Visibility = F3.Visibility;
            E4.Visibility = F4.Visibility;
            E5.Visibility = F5.Visibility;
            E1.Fill = F1.Fill;
            E2.Fill = F2.Fill;
            E3.Fill = F3.Fill;
            E4.Fill = F4.Fill;
            E5.Fill = F5.Fill;
            E1.Opacity = F1.Opacity;
            E2.Opacity = F2.Opacity;
            E3.Opacity = F3.Opacity;
            E4.Opacity = F4.Opacity;
            E5.Opacity = F5.Opacity;

            F1.Visibility = G1.Visibility;
            F2.Visibility = G2.Visibility;
            F3.Visibility = G3.Visibility;
            F4.Visibility = G4.Visibility;
            F5.Visibility = G5.Visibility;
            F1.Fill = G1.Fill;
            F2.Fill = G2.Fill;
            F3.Fill = G3.Fill;
            F4.Fill = G4.Fill;
            F5.Fill = G5.Fill;
            F1.Opacity = G1.Opacity;
            F2.Opacity = G2.Opacity;
            F3.Opacity = G3.Opacity;
            F4.Opacity = G4.Opacity;
            F5.Opacity = G5.Opacity;

            G1.Visibility = H1.Visibility;
            G2.Visibility = H2.Visibility;
            G3.Visibility = H3.Visibility;
            G4.Visibility = H4.Visibility;
            G5.Visibility = H5.Visibility;
            G1.Fill = H1.Fill;
            G2.Fill = H2.Fill;
            G3.Fill = H3.Fill;
            G4.Fill = H4.Fill;
            G5.Fill = H5.Fill;
            G1.Opacity = H1.Opacity;
            G2.Opacity = H2.Opacity;
            G3.Opacity = H3.Opacity;
            G4.Opacity = H4.Opacity;
            G5.Opacity = H5.Opacity;

            H1.Visibility = I1.Visibility;
            H2.Visibility = I2.Visibility;
            H3.Visibility = I3.Visibility;
            H4.Visibility = I4.Visibility;
            H5.Visibility = I5.Visibility;
            H1.Fill = I1.Fill;
            H2.Fill = I2.Fill;
            H3.Fill = I3.Fill;
            H4.Fill = I4.Fill;
            H5.Fill = I5.Fill;
            H1.Opacity = I1.Opacity;
            H2.Opacity = I2.Opacity;
            H3.Opacity = I3.Opacity;
            H4.Opacity = I4.Opacity;
            H5.Opacity = I5.Opacity;

            I1.Visibility = J1.Visibility;
            I2.Visibility = J2.Visibility;
            I3.Visibility = J3.Visibility;
            I4.Visibility = J4.Visibility;
            I5.Visibility = J5.Visibility;
            I1.Fill = J1.Fill;
            I2.Fill = J2.Fill;
            I3.Fill = J3.Fill;
            I4.Fill = J4.Fill;
            I5.Fill = J5.Fill;
            I1.Opacity = J1.Opacity;
            I2.Opacity = J2.Opacity;
            I3.Opacity = J3.Opacity;
            I4.Opacity = J4.Opacity;
            I5.Opacity = J5.Opacity;

            J1.Visibility = K1.Visibility;
            J2.Visibility = K2.Visibility;
            J3.Visibility = K3.Visibility;
            J4.Visibility = K4.Visibility;
            J5.Visibility = K5.Visibility;
            J1.Fill = K1.Fill;
            J2.Fill = K2.Fill;
            J3.Fill = K3.Fill;
            J4.Fill = K4.Fill;
            J5.Fill = K5.Fill;
            J1.Opacity = K1.Opacity;
            J2.Opacity = K2.Opacity;
            J3.Opacity = K3.Opacity;
            J4.Opacity = K4.Opacity;
            J5.Opacity = K5.Opacity;

            K1.Visibility = L1.Visibility;
            K2.Visibility = L2.Visibility;
            K3.Visibility = L3.Visibility;
            K4.Visibility = L4.Visibility;
            K5.Visibility = L5.Visibility;
            K1.Fill = L1.Fill;
            K2.Fill = L2.Fill;
            K3.Fill = L3.Fill;
            K4.Fill = L4.Fill;
            K5.Fill = L5.Fill;
            K1.Opacity = L1.Opacity;
            K2.Opacity = L2.Opacity;
            K3.Opacity = L3.Opacity;
            K4.Opacity = L4.Opacity;
            K5.Opacity = L5.Opacity;

            L1.Visibility = M1.Visibility;
            L2.Visibility = M2.Visibility;
            L3.Visibility = M3.Visibility;
            L4.Visibility = M4.Visibility;
            L5.Visibility = M5.Visibility;
            L1.Fill = M1.Fill;
            L2.Fill = M2.Fill;
            L3.Fill = M3.Fill;
            L4.Fill = M4.Fill;
            L5.Fill = M5.Fill;
            L1.Opacity = M1.Opacity;
            L2.Opacity = M2.Opacity;
            L3.Opacity = M3.Opacity;
            L4.Opacity = M4.Opacity;
            L5.Opacity = M5.Opacity;

...

This file has been truncated, please download it to see its full contents.

_Stream_Config.xaml

XML
this is the configure page.
<Page
    x:Class="Radio_Lab.app_pages._Stream_Config"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Radio_Lab.app_pages"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <Page.Resources>
    </Page.Resources>
    <Grid x:Name="BackgroundElement" >
        <RelativePanel>
            <StackPanel Orientation="Horizontal">
                <Button x:Name="_btn_main" Content="Home" HorizontalAlignment="Left" VerticalAlignment="Top" Click="_btn_main_Click" Style="{StaticResource menu_button}" >
                </Button>
                <Button x:Name="_btn_Clock" Content="Clock" HorizontalAlignment="Left" VerticalAlignment="Top" Click="_btn_Clock_Click" Style="{StaticResource menu_button}" >
                </Button>
                <Button x:Name="_btn_Alarm" Content="Alarms" HorizontalAlignment="Left" VerticalAlignment="Top"  Click="_btn_Alarm_Click" Style="{StaticResource menu_button}"  >
                </Button>
                <Button x:Name="_btn_MyMedia" Content="MyMedia" HorizontalAlignment="Left" VerticalAlignment="Top" Click="_btn_MyMedia_Click" Style="{StaticResource menu_button}"  >
                </Button>
                <Button x:Name="_btn_Stream" Content="Configure" HorizontalAlignment="Left" VerticalAlignment="Top"  Click="_btn_Stream_Click" Style="{StaticResource menu_button_selected}"  >
                </Button>
                <Button x:Name="_btn_Video" Content="Video" HorizontalAlignment="Left" VerticalAlignment="Top" Click="_btn_Video_Click" Style="{StaticResource menu_button}"  >
                </Button>
            </StackPanel>
        </RelativePanel>
        <RelativePanel Margin="0,60,0,0">
            <ListView x:Name="_lstBox_PickerFrom" SelectionChanged="Selection_Changed_1" Height="300"  Width="370" Margin="10,10,0,0" Background="#FF4F5C87" Opacity="0.9" Foreground="White">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <StackPanel Orientation="Horizontal">
                                <Image Source="{Binding Logo_Image}" Height="30" MaxWidth="50" Margin="3,0,3,0"/>
                                <TextBlock Text="{Binding StationName}" HorizontalAlignment="Center" Margin="5,0,5,0" />
                                <TextBlock Text="{Binding Genre}" HorizontalAlignment="Center" />
                            </StackPanel>
                        </Grid>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
            <ListView x:Name="_lstBox_Choices"  Height="300" Width="324" Margin="420,10,0,0" Background="#FF4F5C87" Opacity="0.9" Foreground="White" >
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <StackPanel Orientation="Horizontal">
                                <Image Source="{Binding Logo_Image}" Height="30" MaxWidth="50" Margin="3,0,3,0"/>
                                <TextBlock Text="{Binding StationName}" HorizontalAlignment="Center" Margin="5,0,5,0" />
                                <TextBlock Text="{Binding Genre}" HorizontalAlignment="Center" />
                            </StackPanel>
                        </Grid>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
            <TextBox x:Name="textBox" HorizontalAlignment="Left" Height="20" MinWidth="200" Foreground="White" TextWrapping="Wrap" Text="TextBox" Margin="20,320,0,0" VerticalAlignment="Top"/>
            <Button x:Name="btn_Finished" Content="Finished" Foreground="white"  HorizontalAlignment="Left" VerticalAlignment="Stretch" MinWidth="65" Margin="640,320,-0.333,0" Click="button_Click"/>
        </RelativePanel>
    </Grid>
</Page>

_Stream_Config.xaml.cs

C#
another backpage
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Storage;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using System.Collections.ObjectModel;
using System.Text;


// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238

namespace Radio_Lab.app_pages
{
    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    /// 
    public class DigiRadios
    {
        public string StationName { set; get; }
        public string City { get; set; }
        public string State { get; set; }
        public string Genre { get; set;}
        public string dStreams { get; set; }
        public string Description { get; set; }
        public string Logo_Image { get; set; }
    }

       
    public sealed partial class _Stream_Config : Page      
    {
        ObservableCollection<DigiRadios> datalist = new ObservableCollection<DigiRadios>();
        ObservableCollection<DigiRadios> finallist = new ObservableCollection<DigiRadios>();
        public string selectionMade;
         const int AS = 26;
        string[] stationId = new string[AS];
        string[] city = new string[AS];
        string[] state = new string[AS];
        string[] genre = new string[AS];
        string[] streams = new string[AS];
        string[] description = new string[AS];
        string[] logo_Img = new string[AS];
        



        public _Stream_Config()
        {
            this.InitializeComponent(); 
            readlocaldatafile();
        }
        private void Selection_Changed_1(object sender, SelectionChangedEventArgs e)
        {
            int james = _lstBox_PickerFrom.SelectedIndex;
            textBox.Text = james.ToString();
            DigiRadios dr2 = new DigiRadios() { StationName = stationId[james], City = city[james], State = state[james], Genre = genre[james], dStreams = streams[james], Description = description[james], Logo_Image = logo_Img[james] };
            _lstBox_Choices.Items.Add(dr2);
            if (selectionMade != null )
            {
                selectionMade = selectionMade + "," + james;
            }else
            {
                selectionMade = james.ToString();
            }
        }
        public async void createfileinlocalData()
        {
            string fileName = "selected_stations.txt";
            //Create dataFile.txt in LocalFolder and write My text to it 
            StorageFolder localFolder = ApplicationData.Current.LocalFolder;
           
            
            //var placementfolder = localFolder.Path

            var item = await ApplicationData.Current.LocalFolder.TryGetItemAsync(fileName);
            if (item != null)
            {
                textBox.Text = Path.Combine(localFolder.ToString(), fileName).ToString();
                File.Delete(Path.Combine(localFolder.ToString(), fileName));
            }
            var sampleFile = await localFolder.CreateFileAsync(fileName);

            foreach (DigiRadios spot in finallist)
                {
                    IEnumerable<string> dataload = new List<string>() { spot.StationName + "," + spot.City + "," + spot.State + "," + spot.Genre + "," + spot.dStreams + "," + spot.Description + "," + spot.Logo_Image };
                    await FileIO.AppendLinesAsync(sampleFile, dataload);

                }
            textBox.Text = "file write finished.";       
        }

        private static string[] fetchfile()
        {
            StreamReader inputFile;
            int bob = 24;
            string[] fetchedList = new string[bob];
            int i = 0;
            try
            {
                inputFile = File.OpenText(@"staion_dataFile.txt");
                while (!inputFile.EndOfStream)
                {
                    fetchedList[i] = inputFile.ReadLine();
                    i++;
                }
                inputFile.Dispose();
                
            }catch(Exception ex)
            {
                fetchedList[i] =  "Could not retrieve StationData.txt";
            }
            return fetchedList;
        }

        public void readlocaldatafile()
        {
            //StorageFolder localFolder = ApplicationData.Current.LocalFolder;
            //string sampleFile =  @"..\stationslist\staion_dataFile.txt";
            string[] sampleFile = fetchfile();
            if (sampleFile != null)
                {
                //counts = TotalLines(sampleFile);               
                int i = 0;               
                    foreach(string bob in sampleFile)
                    {             
                        string[] results = bob.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); 
                        stationId[i] = results[0].ToString();
                        city[i] = results[1].ToString();
                        state[i] = results[2].ToString();
                        genre[i] = results[3].ToString();
                        streams[i] = results[4].ToString();
                        description[i] = results[5].ToString();
                        logo_Img[i] = results[6].ToString();
                        i++;
                    }
                }
                int ii = 0;
                foreach(string value in stationId)
                {
                    DigiRadios dr1 = new DigiRadios() { StationName = stationId[ii], City = city[ii], State = state[ii], Genre = genre[ii], dStreams = streams[ii], Description = description[ii], Logo_Image = logo_Img[ii] };
                    datalist.Add(dr1);
                    ii++;
                }
                _lstBox_PickerFrom.ItemsSource = datalist;          
        }
        // Navigation buttons --//
        private void _btn_Clock_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_clock), null);
        }
        private void _btn_Video_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_Video), null);
        }
        private void _btn_Stream_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_Stream), null);
        }
        private void _btn_MyMedia_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_MyMedia), null);
        }
        private void _btn_main_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(MainPage), null);
        }
        private void _btn_Alarm_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(_Alarm), null);
        }

        private void button_Click(object sender, RoutedEventArgs e)
        {
            _lstBox_PickerFrom.IsActiveView = false;
            
            string[] thingsSelected = selectionMade.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            
            int jj = thingsSelected.Count();
            foreach (string fart in thingsSelected)
            {
                int flagulance = Convert.ToInt32(fart);
                finallist.Add(datalist.ElementAt(flagulance));
            }

            _lstBox_Choices.Items.Clear();
            createfileinlocalData();
            _lstBox_Choices.ItemsSource = finallist;
            this.Frame.Navigate(typeof(_Stream_2), null);
        }
    }
}

Credits

Lee Wilkins

Lee Wilkins

-1 projects • 1 follower

Comments