
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдХреА рдПрдХ рддрд╛рдХрдд рдЗрд╕рдХрд╛ рдбрд┐рдЬрд╛рдЗрди рд╣реИред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдбрд┐рдЬрд╛рдЗрди рдЕрд╡рдзрд╛рд░рдгрд╛ рдЬреЛ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдкреНрд░рдореБрдЦ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд▓рд╛рдЗрд╡ рдЯрд╛рдЗрд▓ рдпрд╛ "рд▓рд╛рдЗрд╡ рдЯрд╛рдЗрд▓" рд╣реИ - "рд╕реНрдЯреЗрд░реЙрдпрдб рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдЗрдХрди"ред рд▓рд╛рдЗрд╡ рдЯрд╛рдЗрд▓ рдХрд╛ рдЙрдЪрд┐рдд рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдмрд╛рдВрдзрддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЕрдиреБрднрд╡ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдореИрдВрдиреЗ рдореМрд╕рдо рдХреЗ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрди рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдерд╛, рддреЛ рдореЗрд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдирджрдВрдб рдпрд╣ рдерд╛ рдХрд┐ рдЖрд╡реЗрджрди рдореЗрдВ рдПрдХ рд▓рд╛рдЗрд╡ рдЯрд╛рдЗрд▓ рдерд╛ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдирддреАрдЬрддрди, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдХреНрд░реАрди рдкрд░ рд▓рд╛рдЗрд╡ рдЯрд╛рдЗрд▓ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓рдЧрднрдЧ рдЕрдм рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА, рд▓реЙрдХ-рд╕реНрдХреНрд░реАрди рд▓реЗрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреА рдореМрд╕рдо рдХреА рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред
рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг, рдЖрдк рд╕реЛрдЪрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдпрд╣ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ?
рдЬрд┐рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рд╡рд╣ рдореЗрд░реА рд▓рд╛рдЗрд╡ рдЯрд╛рдЗрд▓ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ (рдФрд░ рдХрдИ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдХрдИ рд╢рд╣рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрд╡ рдЯрд╛рдЗрд▓ рдХреЛ рдкрд┐рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ) рдЖрд╡рдзрд┐рдХ рдкреГрд╖реНрдарднреВрдорд┐ рдПрдЬреЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ред
рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдХрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдПрдЬреЗрдВрдЯ рд╕реЗ рд▓рд╛рдЗрд╡ рдЯрд╛рдЗрд▓ рдЕрдкрдбреЗрдЯ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдкрд╣рд▓реЗ рдореИрдВ рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рд▓рд┐рдП 2 рдкреГрд╖реНрдарднреВрдорд┐ рдЪрд┐рддреНрд░ рддреИрдпрд╛рд░ рдХрд░реВрдВрдЧрд╛ред рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ рд╣реИ:

рдФрд░

рдпреЗ рдкреАрдПрдирдЬреА рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ, рдПрдХ рдкрд╛рд░рджрд░реНрд╢реА рдкреГрд╖реНрдарднреВрдорд┐ рдкрд░ рдЖрдХрд╛рд░ 173x173, рддрд╛рдХрд┐ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлреЛрди рдкрд░ рдЕрдм рд╕реНрдерд╛рдкрд┐рдд рдереАрдо рдХреЗ рд░рдВрдЧ рдХрд╛ рдЖрдзрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗред
рдлрд┐рд░ рд╣рдо C # рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдПрдкреНрд▓реАрдХреЗрд╢рди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рддреИрдпрд╛рд░ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВред рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рд╕рд░рд▓ рдирд╛рдореЛрдВ рдХреЗ рддрд╣рдд рдЬреЛрдбрд╝рд╛ 1.png рдФрд░ 2.pngред рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ, рдЖрдкрдХреЛ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рд╢рд░реНрддреЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрджрд┐ рдЙрдирдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реИ рддреЛ рдХреЙрдкреА рдХрд░реЗрдВред
рд╣рдо рд╕реАрдзреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
рд╣рдо рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯрд╛рдЗрд▓ рдФрд░ рдПрдХ рджреНрд╡рд┐рддреАрдпрдХ рдЯрд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВрдЧреЗред
рдиреЛрдЯ: рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╣рдореЗрд╢рд╛ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯрд╛рдЗрд▓ рд╣реЛрддреА рд╣реИ, рднрд▓реЗ рд╣реА рдЗрд╕реЗ рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдХреНрд░реАрди рдкрд░ рдкрд┐рди рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рдХрдИ рдорд╛рдзреНрдпрдорд┐рдХ рдЯрд╛рдЗрд▓реЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрджреВрд╕рд░реЗ рдкреГрд╖реНрда рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЗрд╕реЗ LandingPage.xaml рдХрд╣реЗрдВ - рдпрд╣ рддрдм рдЦреБрд▓реЗрдЧрд╛ рдЬрдм рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреА рджреНрд╡рд┐рддреАрдпрдХ рдЯрд╛рдЗрд▓ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЪрд▓рд┐рдП MainPage.xaml рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рдмрдЯрди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28"> <TextBlock x:Name="ApplicationTitle" Text="LIVE TILES UPDATE DEMO" Style="{StaticResource PhoneTextNormalStyle}"/> <TextBlock x:Name="PageTitle" Text="" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/> </StackPanel> <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <StackPanel> <Button Height="100" Content=" " Name="TileAdder" Click="TileAdder_Click"></Button> </StackPanel> </Grid>
рд╣рдо рдХреЛрдб рдкрд░ рдПрдХ рдмрдЯрди рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд "рдбреЗрдореЛ рд▓реЙрдЬрд┐рдХ" рдХреЗ рд╕рд╛рде рдПрдХ рдорд╛рдзреНрдпрдорд┐рдХ рдЯрд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВрдЧреЗ:
private void TileAdder_Click(object sender, RoutedEventArgs e) { IsolatedStorageFile CounterStorage = IsolatedStorageFile.GetUserStoreForApplication(); IsolatedStorageFileStream CounterStream = CounterStorage.OpenFile("counter", System.IO.FileMode.OpenOrCreate); int count = CounterStream.ReadByte(); if (count < 0) count = 1; StandardTileData appTileData = new StandardTileData(); if ((count % 2) == 0) { appTileData.Title = " 002"; appTileData.BackgroundImage = new Uri("/1.png", UriKind.RelativeOrAbsolute); } else if ((count % 7) == 0) { appTileData.Title = " 007"; appTileData.BackgroundImage = new Uri("", UriKind.RelativeOrAbsolute); } else { appTileData.Title = " 000"; appTileData.BackgroundImage = new Uri("/2.png", UriKind.RelativeOrAbsolute); } appTileData.Count = count; CounterStream.Seek(0, SeekOrigin.Begin); count = count + 5; if (count > 99) count = 99; CounterStream.WriteByte((byte)count); CounterStream.Close(); ShellTile.Create(new Uri("/LandingPage.xaml", UriKind.RelativeOrAbsolute), appTileData); }
рджреНрд╡рд┐рддреАрдпрдХ рдЯрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рд╣рдо рдЯрд╛рдЗрд▓ рдбреЗрдЯрд╛ рдпреБрдХреНрдд рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣рдо рдЙрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рд╣рдо рдЙрд╕ рдкреГрд╖реНрда рдХреЗ рдпреВрдЖрд░рдЖрдИ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдСрдмреНрдЬреЗрдХреНрдЯ - рд╕рдм рдХреБрдЫ рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИред
рджреНрд╡рд┐рддреАрдпрдХ рдЯрд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рддрд░реНрдХ рдХреЗрд╡рд▓ рдЖрд╡реЗрджрди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╕рдордп рд╡рд┐рднрд┐рдиреНрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЯрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдЬреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓рддрд╛ рд╣реИ - рдпрд╣ рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдПрдЬреЗрдВрдЯ рдХреЗ рдмреАрдЪ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдПрдХ рдЕрдиреБрдХрд░рдг рд╣реИ, рдЬрд┐рд╕ рдкрд░ рд╣рдо рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗред
рдЪреВрдВрдХрд┐, рдпрджрд┐ рдЧрдгрдирд╛ рдХреА рд╕рдВрдкрддреНрддрд┐ 99 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдпрд╣ рдЕрднреА рднреА 99 рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛, рд╣рдо рдХреЗрд╡рд▓ 99 рддрдХ рдЧрд┐рдирддреЗ рд╣реИрдВ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрдВрдЯ рд╕реЗ рдмрд╛рдЗрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдм рд╣рдореЗрдВ рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдПрдЬреЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдЯрд╛рдЗрд▓реЛрдВ рдкрд░ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рд╢реЗрдбреНрдпреВрд▓рд░ рдЯрд╛рд╕реНрдХ рдПрдЬреЗрдВрдЯ рдЬреИрд╕реА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬреЛрдбрд╝реЗрдВ, рдлрд┐рд░ рдЗрд╕реЗ рдореБрдЦреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдореБрдЦреНрдп рдкреГрд╖реНрда рдХреЗ рдЙрдкрдпреЛрдЧ рдмреНрд▓реЙрдХ рдореЗрдВ рдЕрдкрдирд╛ рдирд╛рдо рд╕реНрдерд╛рди рдЬреЛрдбрд╝реЗрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрд╕реНрдкреЗрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдореБрдЦреНрдп рдкреГрд╖реНрда рдХреЗ рдЙрдкрдпреЛрдЧ рдмреНрд▓реЙрдХ рдореЗрдВ, рдЖрдкрдХреЛ рдЖрдЗрд╕реЛрд▓реЗрдЯреЗрдб рд╕реНрдЯреЛрд░реЗрдЬ рдФрд░ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╛рдо рд╕реНрдерд╛рди рдЬреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВрдиреЗ рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ UpdateTileAgent рдХрд╛ рдирд╛рдо рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдмреНрд▓реЙрдХ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
using UpdateTileAgent; using Microsoft.Phone.Scheduler; using System.IO.IsolatedStorage; using System.IO;
рддреЛ, рд╣рдореЗрдВ рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдПрдЬреЗрдВрдЯ рдмрдирд╛рдиреЗ рдФрд░ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдореБрдЦреНрдп рдкреГрд╖реНрда рдХреЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдХрд░реВрдВрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛, рдФрд░ рдПрдЬреЗрдВрдЯ рдирд┐рд░реНрдорд╛рдг рдХреЛрдб рдХреЛ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛:
const string UpdateTileAgentName = "Agent-Tile";
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреЛрдб рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдореИрдВ рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдЖрд╡рдзрд┐рдХ рдПрдЬреЗрдВрдЯ рд╣рд░ рдЖрдзреЗ рдШрдВрдЯреЗ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдЪрд▓рддреЗ рд╣реИрдВред рдпрд╣ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рд╢рд░реНрдд рд╕рдВрдХрд▓рди рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рдбрд┐рдмрдЧ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ 10 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдПрдЬреЗрдВрдЯ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВред
#if DEBUG ScheduledActionService.LaunchForTest(UpdateTileAgentName, TimeSpan.FromSeconds(10)); #endif
рдореИрдВ рдПрдХ рд╣реА рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдХрдИ рдорд╛рдзреНрдпрдорд┐рдХ рдЯрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЯрд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореИрдВ рдЯрд╛рдЗрд▓ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЯрди рдХреЛ рдЪрд╛рд▓реВ / рдмрдВрдж рдХрд░рддрд╛ рд╣реВрдВред
if (ShellTile.ActiveTiles.Count() > 1) TileAdder.IsEnabled = false;
рдПрдЬреЗрдВрдЯ рдХреЗ
рд╡рд┐рд╡рд░рдг рдХреНрд╖реЗрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдЗрд╕реЗ рдЕрдиреБрд╕реВрдЪрдХ рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕рдм рдХреБрдЫ, рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рд╣реА, рд╣рдо рд╕рдорд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдм рдЖрдк рдПрдЬреЗрдВрдЯ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдЬреЗрдВрдЯ рдореЗрдВ рдореБрдЦреНрдп рдХрд╛рд░реНрдп
OnInvoke рдкрджреНрдзрддрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
protected override void OnInvoke(ScheduledTask task)
рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдЬреЗрдВрдЯ рдХреЛрдб рдмреНрд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдирд╛ рди рднреВрд▓реЗрдВред рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
using System; using System.Collections.Generic; using System.Linq; using System.Windows; using Microsoft.Phone.Scheduler; using Microsoft.Phone.Shell; using System.IO.IsolatedStorage; using System.IO;
рд╣рдо рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ "рдмрд╛рд╣рд░реА" рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдЬреЗрдВрдЯ рдХреЛрдб рдореЗрдВ рдПрдХ рдЯрд╛рдЗрд▓ рдЕрдкрдбреЗрдЯ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдорд╛рдзреНрдпрдорд┐рдХ рдЯрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХреЗ рд╕рдорд╛рди рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдереЛрдбрд╝реА рд╡рд┐рд╡рд┐рдзрддрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рдореИрдВрдиреЗ рдПрдХ рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рдЗрд▓ рдЕрдкрдбреЗрдЯ рдХреЛрдб рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ред
void TileUpdater(ShellTile tile, int count) { StandardTileData appTileData = new StandardTileData(); if ((count % 2) == 0) { appTileData.Title = " 002"; appTileData.BackgroundImage = new Uri("/1.png", UriKind.RelativeOrAbsolute); } else if ((count % 7) == 0) { appTileData.Title = " 007"; appTileData.BackgroundImage = new Uri("", UriKind.RelativeOrAbsolute); } else { appTileData.Title = " 000"; appTileData.BackgroundImage = new Uri("/2.png", UriKind.RelativeOrAbsolute); } appTileData.Count = count+1; tile.Update(appTileData); }
рдСрдирд╡реЛрдХ рд╡рд┐рдзрд┐
рдЦреБрдж рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
protected override void OnInvoke(ScheduledTask task) { ShellTile AppTile = ShellTile.ActiveTiles.FirstOrDefault(); IsolatedStorageFile CounterStorage = IsolatedStorageFile.GetUserStoreForApplication(); IsolatedStorageFileStream CounterStream = CounterStorage.OpenFile("counter", System.IO.FileMode.OpenOrCreate); int count = CounterStream.ReadByte(); if (count < 0) count = 1;
рд╣рдо рдпрд╣рд╛рдВ рдХреНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ? рдЕрдиреБрд░реЛрдз рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ 10 рд╕реЗрдХрдВрдб рдФрд░ рдореБрдЦреНрдп рдЖрд╡реЗрджрди рдЯрд╛рдЗрд▓ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рддрд░реНрдХ рдХреЗ рдмрд╛рдж рдПрдЬреЗрдВрдЯ рд╢реБрд░реВ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯрд╛рдЗрд▓ рд╕реВрдЪреА рдореЗрдВ рдкрд╣рд▓реА рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рд╡рд╣рд╛рдВ рд╣реИ, рднрд▓реЗ рд╣реА рдЖрд╡реЗрджрди рд╢реБрд░реВ рд╕реНрдХреНрд░реАрди рдкрд░ рддрдп рди рд╣реЛред
рдЖрдк рдпрд╣рд╛рдВ рдПрдЬреЗрдВрдЯ рдореЗрдВ рдЕрдиреНрдп рдЯрд╛рдЗрд▓ рдЧреБрдгреЛрдВ рдХреЛ рднреА рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдпрд╣рд╛рдВ рдЯрд╛рдЗрд▓ рдФрд░ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ:
http://msdn.microsoft.com/en-us/windowsphone/hh505822 ред
рдЕрдм рдЖрдк рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрдирд╛ рдФрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдареАрдХ рдХрд░реЗрдВ, рджреВрд╕рд░реА рдЯрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛ред рджреЗрдЦреЗрдВ рдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрд▓реЗрдВ рдХреИрд╕реЗ рдмрджрд▓рддреА рд╣реИрдВред
рдЕрдм, рдЗрд╕ рдЬреНрдЮрд╛рди рд╕реЗ рд▓реИрд╕, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдиреЗ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдиреНрдирдд рд▓рд╛рдЗрд╡ рдЯрд╛рдЗрд▓ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
UPD : рдЕрдиреБрд╕реНрдорд╛рд░рдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
max_sokolov ред рд╕рдордп-рд╕рдордп рдкрд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкреГрд╖реНрдарднреВрдорд┐ рдПрдЬреЗрдВрдЯреЛрдВ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреБрдг рд╣реЛрддреЗ рд╣реИрдВ:
- рд▓рдЧрднрдЧ рд╣рд░ 30 рдорд┐рдирдЯ рдореЗрдВ рдЪрд▓рд╛рдПрдВ
- рдЙрдирдХрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рдордп 25 рд╕реЗрдХрдВрдб рддрдХ рд╕реАрдорд┐рдд рд╣реИ (рдХреБрдЫ рд╕реНрд░реЛрдд 15 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ)
- рдЙрдирдХреА рдмрд┐рдЬрд▓реА рдХреА рдЦрдкрдд рд╕реАрдорд┐рдд рд╣реИ
- рдЙрдирдХреА рдореЗрдореЛрд░реА рдХреА рдЦрдкрдд рд╕реАрдорд┐рдд рд╣реИ (рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, рдиреНрдпреВрдирддрдо рдорд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ - 6 рдПрдордмреА)
- рд╕рд┐рд╕реНрдЯрдо рдПрдЬреЗрдВрдЯ рдХреЛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрд╕рд╛рдзрди рдирд╣реАрдВ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлреЛрди рдХрдо рд╣реИ)
- рдпрджрд┐ рдПрдЬреЗрдВрдЯ 3 рдмрд╛рд░ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛
- рдПрдЬреЗрдВрдЯ рдХреЛ 14 рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд▓реЙрдиреНрдЪ рд╢реЗрдбреНрдпреВрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдЖрдкрдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ:MSDN рдкрд░ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╕реЗрдВрдЯрд░рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдПрд╕рдбреАрдХреЗ 7.1рд░реВрд╕реА рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рд╡рд┐рдХрд╛рд╕ рдордВрдЪ