рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 8: рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВред рдореИрдЯреНрд░рд┐рдХреНрд╕ред рднрд╛рдЧ 1

рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 8: рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВред рдореИрдЯреНрд░рд┐рдХреНрд╕ред рднрд╛рдЧ 1
рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 8: рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВред рдореИрдЯреНрд░рд┐рдХреНрд╕ред рднрд╛рдЧ реи
рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 8: рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВред рдореИрдЯреНрд░рд┐рдХреНрд╕ред рднрд╛рдЧ 3. рдПрдорд╡реАрд╡реАрдПрдо

рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛, рдПрдХ рд╣реА рд╡рд┐рдЪрд╛рд░ рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЦреБрдж рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 8 рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдИ рд╣реБрдИ рдереАред "рдореИрдЯреНрд░рд┐рдХреНрд╕" рдХреНрдпреЛрдВ? рдХреНрдпреЛрдВрдХрд┐ рдлрд┐рд▓реНрдо рд░рд┐рд▓реАрдЬ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдЗрд╕рдиреЗ рдореБрдЭреЗ рдореЛрд╣рд┐рдд рдХрд░ рд▓рд┐рдпрд╛ред рддрдм рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реНрдХреНрд░реАрди рд╕реЗрд╡рд░ рдорд┐рд▓рд╛ред рд╡рд╣ рдЙрд╕реЗ рдШрдВрдЯреЛрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ред рдФрд░ рдЕрдм рдореИрдВрдиреЗ рдЗрд╕реЗ рдлреЛрди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рддрд╛рдХрд┐ рдореИрдВ рд╣рдореЗрд╢рд╛ рд╣рд╛рде рдореЗрдВ рд░рд╣реВрдВред рдФрд░ рдЗрд╕рд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред


рд▓реВрдорд┐рдпрд╛ 520 рдХреА рд╕реНрдХреНрд░реАрди рд╕реЗ рдкреНрд░рд┐рдВрдЯ рд╕реНрдХреНрд░реАрди

рд▓рдЧрднрдЧ 2 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдРрд╕рд╛ рд╣реА рдХреБрдЫ рдмрдирд╛рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди JQuery рдкрд░ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рддрдм рд╕рдм рдХреБрдЫ рдирд┐рдХрд▓рд╛, рдкреВрд░реНрдг рдореВрд▓реНрдп рдХреЛ рдЫреЛрдбрд╝рдХрд░: рдЕрдзрд┐рдХрддрдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЖрдХрд╛рд░ рдЬрд┐рд╕ рдкрд░ рдпрд╣ "рдзреАрдорд╛" рдирд╣реАрдВ рдерд╛ рд▓рдЧрднрдЧ 15 X 20 рдХреЛрд╢рд┐рдХрд╛рдПрдВ рдереАрдВ, рдЬреЛ рдЖрдзреБрдирд┐рдХ рдлреБрд▓ рдПрдЪрдбреА рдореЙрдирд┐рдЯрд░ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЫреЛрдЯрд╛ рд╣реИред рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдкрд░, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЗрд╕рдиреЗ рдХреЗрд╡рд▓ 1 рдХреЛрд░ рд▓реЛрдб рдХрд┐рдпрд╛ рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдордЭрд╛, рдХреЗрд╡рд▓ 1 рдереНрд░реЗрдб рдореЗрдВ (рдореИрдВ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЕрдзрд┐рдХ рдЙрдбрд╝рд╛рдиреЛрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдирд╣реАрдВ рдХреА рдереА)ред рд╣рд╛рдВ, рдФрд░ рдЗрд╕ рдЬреЗрдПрд╕ рдврд╛рдВрдЪреЗ рдореЗрдВ рд╕рд╣рдЬ рд╣реЛрдиреЗ рдХреЗ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде рд╣реА рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕реА # рдЗрди рдХрдорд┐рдпреЛрдВ рд╕реЗ рд░рд╣рд┐рдд рд╣реИ, рдФрд░ рдЖрдзреБрдирд┐рдХ рд╕реНрдорд╛рд░реНрдЯрдлрд╝реЛрди рдХреА рд╢рдХреНрддрд┐ рдкреНрд░рддреНрдпреЗрдХ рдРрд╕реЗ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рддрддреНрд╡реЛрдВ рдФрд░ рдХрдИ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЬрдм рдореЗрд░реА рдХрдордЬреЛрд░ рд▓реВрдорд┐рдпрд╛ 520 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛, рддреЛ рдореЗрд░реА рд╕рднреА рдЙрдореНрдореАрджреЗрдВ рдкреВрд░реА рд╣реБрдИрдВред

рдкрд╣рд▓реЗ, рдЖрдЗрдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ


  1. рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдПрдХ рдЧреНрд░рд┐рдб рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕рд╛рдБрдк рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЪреБрдиреЗ рдЬрд╛рддреЗ рд╣реИрдВ
  2. рд╕рд╛рдВрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд▓рдВрдмрд╛рдИ рдХреЗ рд╣реЛрдВрдЧреЗред
  3. рд╕рд╛рдБрдк рдХреА рдкреНрд░рддреНрдпреЗрдХ рдХреЛрд╢рд┐рдХрд╛ рдореЗрдВ, рддрддреНрд╡реЛрдВ рдореЗрдВ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдХрдИ рдмрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ
  4. рдПрдХ рд░рдВрдЧ рд▓реБрдкреНрдд рд╣реЛрддреА рдкреНрд░рднрд╛рд╡ рд╣реИред рд╕рд╛рдВрдк рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреА рдЪрдордХ рдЗрд╕рдХреА рд▓рдВрдмрд╛рдИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ


рдХреНрдпрд╛ рдореИрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛



рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрджред рдПрдореБрд▓реЗрдЯрд░ рдкрд░, рдкрд░рд┐рдгрд╛рдо рдмрд╣реБрдд рдкреНрд░рд╢рдВрд╕рдиреАрдп рдирд╣реАрдВ рд╣реИрдВред рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рд╛рдВрдкреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрд╕рд▓реА рдлреЛрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдПрдлрдкреАрдПрд╕ рджрд┐рдЦрд╛рдпрд╛ред рдлреЛрди рдкрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп - рдлреЛрди рдмрд╣реБрдд рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рдХреЗрд╡рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдкреНрд░рджрд░реНрд╢рди рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред

рдЪрд▓рд┐рдП рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ


рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ: рдЯреЗрдореНрдкреНрд▓реЗрдЯреНрд╕ - рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реА # - рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди - рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдПрдкреНрд▓реАрдХреЗрд╢рдиред
.NET рдлреНрд░реЗрдорд╡рд░реНрдХ 4.5 рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо SE_Matrix_2d_v_1 рд╣реИред рдпрд╣ рдирд╛рдорд╕реНрдерд╛рди рднреА рд╣реЛрдЧрд╛ред
Windows Phone OS 8.0 рдЪреБрдиреЗрдВред

MainPage.xaml

рдЕрдм XAML рдХреЛрдб рдХреЛ рдПрдбрд┐рдЯ рдХрд░реЗрдВред рд╣рдореЗрдВ рдХреЗрд╡рд▓ LayoutRoot рдирд╛рдо рдХреЗ рд╕рд╛рде рдЧреНрд░рд┐рдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреА рдШрдЯрдирд╛ (Tap) Event_Grid_Tap_LayoutRoot, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ, рд╕реНрдХреНрд░реАрди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЯреЗрдХреНрд╕реНрдЯрдмреНрд▓реЙрдХ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рджрд░реНрдЬ рдХрд░реЗрдВрдЧреЗред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ:

<phone:PhoneApplicationPage x:Class="SE_Matrix_2d_v_1.MainPage" x:Name="SE_Matrix_2d_v_1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" FontFamily="{StaticResource PhoneFontFamilyNormal}" FontSize="{StaticResource PhoneFontSizeNormal}" Foreground="{StaticResource PhoneForegroundBrush}" SupportedOrientations="Portrait" Orientation="Portrait" shell:SystemTray.IsVisible="True"> <!--LayoutRoot   ,     --> <Grid x:Name="LayoutRoot" Background="Transparent" Tap="Event_Grid_Tap_LayoutRoot"> </Grid> </phone:PhoneApplicationPage> 

рд╣рдо рдПрдореБрд▓реЗрдЯрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдХрд╛рд▓реА рд╕реНрдХреНрд░реАрди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

MainPage.xaml.cs

рд╣рдо рддреБрд░рдВрдд рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
 using System.Windows.Media; //     using System.Threading.Tasks; //    using System.Diagnostics; //  . Debug.WriteLine( SomethingYouNeedToSee); 

рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ, рд╣рдо CreateElement рд╡рд┐рдзрд┐ рдХрд╣рддреЗ рд╣реИрдВ, рдЬреЛ рддрддреНрд╡реЛрдВ рдХрд╛ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмрдирд╛рдПрдЧреА, рдЬрд┐рд╕рдореЗрдВ рдЖрдЧреЗ рдХреА рд╕рднреА рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реЛрдВрдЧреА:
  //  public MainPage() { InitializeComponent(); CreateElement(); } 

рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрдХреНрд░реАрди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред ScreenWidth рдФрд░ ScreenHeight рдЧреБрдг рдХреЛ MainPage рд╡рд░реНрдЧ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
  public partial class MainPage : PhoneApplicationPage { //    double ScreenWidth = System.Windows.Application.Current.Host.Content.ActualWidth; double ScreenHeight = System.Windows.Application.Current.Host.Content.ActualHeight; ... 

рдЪрд▓рд┐рдП CreateElement рдореЗрдердб рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╣рдо рдмрдирд╛рдПрдВрдЧреЗ:
  //     countWidth = (int)Math.Round(ScreenWidth / 50); countHeight = (int)Math.Round(ScreenHeight / 50); 

рдпрджрд┐ рдЖрдкрдиреЗ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж C # рд╕реАрдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдпрд╣ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛:
  //     countWidth = (int)Math.Round(this.ScreenWidth / 50); countHeight = (int)Math.Round(this.ScreenHeight / 50); 

рдЗрд╕рд▓рд┐рдП (рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рд╡рд░реНрдЧ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рдЙрд╕ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд░ рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрджрд░ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡рд░реНрдЧ рдХреЗ рдЧреБрдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рдЬрд╛рд░реА рд░рд╣рддреА рд╣реИред

рдЕрдм, рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЬрд╛рдирдХрд░, рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рдЧрдгрдирд╛ (рдЫреЛрд░реЛрдВ рдХреЗ рд▓рд┐рдП 2) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдЯреЗрдХреНрд╕реНрдЯрдмреНрд▓реЙрдХ рддрддреНрд╡реЛрдВ рдХреА рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ:
  //    for (i = 0; i < countWidth; i++) { for (j = 0; j < countHeight; j++) { //  TextBlock TextBlock element = new TextBlock(); //    TextBlock element.Name = "TB_" + i + "_" + j; //    //element.Text = char.ConvertFromUtf32(random.Next(0x4E00, 0x4FFF)); //      element.Text = ""; //  //      TextBlock int wx = i * 50; int wy = j * 50; element.Margin = new Thickness(wx, wy, 0, 0); //    element.Foreground = new SolidColorBrush(Colors.Green); //    element.FontSize = 36; //     Grid LayoutRoot.Children.Add(element); } } 

рдорд╛рд░реНрдЬрд┐рди рдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╕рднреА рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рдКрдкрд░ рдирд╣реАрдВ рдереЗред
рдкреНрд░рддреНрдпреЗрдХ TextBlock рдХрд╛ рдирд╛рдо X рдФрд░ Y рдХреА рднрд╛рдЧреАрджрд╛рд░реА рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдмрд╛рдж рдореЗрдВ рдЙрди рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рд╕рд╛рдВрдк рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛ рд╕рдХреЗред

рдпрджрд┐ рдЖрдк рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рд╕реАрдорд╛ рддрддреНрд╡ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдЖрдХрд╛рд░ рдФрд░ рдЙрдирдХреЗ рд╕реНрдерд╛рди рдХрд╛ рдиреЗрддреНрд░рд╣реАрди рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ:
 //   ,      public void CreateElement() { int i, j, countWidth, countHeight; //     countWidth = (int)Math.Round(this.ScreenWidth / 50); countHeight = (int)Math.Round(this.ScreenHeight / 50); //    for (i = 0; i < countWidth; i++) { for (j = 0; j < countHeight; j++) { //  TextBlock TextBlock element = new TextBlock(); //  Border Border elementBorder = new Border(); //    TextBlock elementBorder.Name = "B_" + i + "_" + j; //    TextBlock element.Name = "TB_" + i + "_" + j; //    //element.Text = char.ConvertFromUtf32(random.Next(0x4E00, 0x4FFF)); //      element.Text = ""; //  //      TextBlock int wx = i * 50; int wy = j * 50; element.Margin = new Thickness(wx, wy, 0, 0); //    element.Foreground = new SolidColorBrush(Colors.Green); //    element.FontSize = 36; //      Border elementBorder.Margin = new Thickness(wx, wy, 0, 0); //     elementBorder.BorderThickness = new Thickness(1); //    elementBorder.BorderBrush = new SolidColorBrush(Colors.Green); //  TextBlock  Border elementBorder.Child = element; //     Grid LayoutRoot.Children.Add(elementBorder); } } } 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реАрдорд╛ рддрддреНрд╡ (LayoutRoot.Children.Add (elementBorder);) рдХреЛ рдЧреНрд░рд┐рдб рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рддрддреНрд╡ рдХреА рджреГрд╢реНрдп рд╕реАрдорд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реАрдорд╛ рдЯреИрдЧ рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 <Border BorderThickness="1" BorderBrush="Black" Background="Green" CornerRadius="5"> <TextBlock Text="Description"/> </Border> 

рдЕрдЧрд▓рд╛, рд╣рдо рд╕реАрдорд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛, рдкрд╣рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред

рдЕрдм рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ, рддреЛ рдЖрдк рдЙрди рд╕рд╛рдБрдкреЛрдВ рдХреЛ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдВрджрд░ рд░реЛрд▓ рдХрд░реЗрдВрдЧреЗред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЧреНрд░рд┐рдб рддрддреНрд╡ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдПрдВ, рдЬреЛ рдмрд╕ рд╕реНрдЯрд╛рд░реНрдЯ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛:
  //      Grid ( ) private void Event_Grid_Tap_LayoutRoot(object sender, System.Windows.Input.GestureEventArgs e) { Start(); } 

рдпрджрд┐ рд╣рдо рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рд▓реВрдк рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рд╡рд┐рдзрд┐ рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдХрдИ рдПрдХ рд╕рд╛рде рд╕рд╛рдВрдк рдорд┐рд▓рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝рд╛ рдмрд╛рдж рдореЗрдВ рд╣реИред

рд╕реНрдЯрд╛рд░реНрдЯ рд╡рд┐рдзрд┐ рд╕рд╛рдБрдк рдХреА рд╢реБрд░реБрдЖрддреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╕рд╛рдБрдк рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ X рдФрд░ Y рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ, рд╕рд╛рдБрдк рдХреА рд▓рдВрдмрд╛рдИ, рдкреНрд░рддреНрдпреЗрдХ рдЯреЗрдХреНрд╕реНрдЯрдмреНрд▓реЙрдХ рд╕реЗрд▓ рдореЗрдВ рдмрджрд▓рддреЗ рд╡рд░реНрдгреЛрдВ рдХреА рдЧрддрд┐ред рд╕рдВрдпреЛрдЧ рд╕реЗ, рдХрддрд╛рд░ рдореЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рд╕рд╛рдБрдкреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛:
  //    public async void Start() { int count, iteration; //         iteration = 1; count = 0; //         while (count < iteration) { //       int ranX = random.Next(0, 10); //       int ranY = random.Next(0, 20); //     int length = random.Next(3, 7); //          int time = random.Next(30, 70); await Task.Delay(1); //   await RandomElementQ_Async(ranX, ranY, length, time); count++; } } 

рддреЛ рд╣рдо рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ "рджрд┐рд▓" рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛, RandomElementQ_Async рд╡рд┐рдзрд┐ред рд╡рд╣ рд╡рд╛рдВрдЫрд┐рдд рддрддреНрд╡ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ, рдЙрд╕рдХреЗ рд░рдВрдЧ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ, рдЧрд┐рд░рдиреЗ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд░реЗрдВрдЧрдиреЗ рд╕реЗ рд╕рд╛рдВрдк рдХреА рд░рдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдФрд░ рдЕрдм рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ:
 //  ,      public async Task RandomElementQ_Async(int x, int y, int length, int timeOut) { //     ,     . Dictionary<int, TextBlock> dicElem = new Dictionary<int, TextBlock>(); // ,    ,     if ((y + i) < countHeight && (y + i) >= 0).   4  . int count = 0; //      length for (int i = 0; i < length; i++) { //    ,        //     int countHeight = (int)Math.Round(ScreenHeight / 50); // ,       ,      if ((y + i) < countHeight) { //   ,      string elementName = "TB_" + x + "_" + (y + i); //      object wantedNode = LayoutRoot.FindName(elementName); TextBlock element = (TextBlock)wantedNode; //    ,        ""  ""  dicElem[count] = (element); //     .  ( ) -   ,  -  . //  1, ,        255   . int rf = (int)Math.Round(255 / (double)(i + 1)) - 1; //    ,    . . await Change(element, timeOut, 255); //   ,     .     ,     . for (int k = 0; k <= i; k++) { //    ""   (,  y = -5) if (dicElem.ContainsKey(k)) { // ,      .   ""  TextBlock previousElement = dicElem[k]; //    // (rf * (k + 1)) - 20   ,             //       ( ) Task dsvv = Change(previousElement, timeOut, (rf * (k + 1)) - 20); } } count++; } } } 

рдФрд░ рдЕрдВрддрд┐рдо рд╕рд░рд▓ рд╡рд┐рдзрд┐, рд╕рд╣реА рд╕реЗрд▓ рдореЗрдВ рд╡рд░реНрдгреЛрдВ рдФрд░ рдЙрдирдХреЗ рд░рдВрдЧ рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп рдХреА рд╕рд╣реА рд╕рдВрдЦреНрдпрд╛:
  //       public async Task Change(TextBlock txt, int timeOut, int Opacity) { //       SolidColorBrush NewColor = new SolidColorBrush(new Color() { A = (byte)(255) /*Opacity*/, R = (byte)(0) /*Red*/, G = (byte)(Opacity) /*Green*/, B = (byte)(0) /*Blue*/ }); //   ""  1   "" txt.Foreground = NewColor; //       for (int i = 0; i < 5; i++) { //     txt.Text = char.ConvertFromUtf32(random.Next(0x4E00, 0x4FFF)); //      await Task.Delay(timeOut); } } 


MainPage.xaml.cs рдлрд╝рд╛рдЗрд▓ рдХреЛрдб рдЪрд▓рд╛рдирд╛
 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Navigation; using Microsoft.Phone.Controls; using Microsoft.Phone.Shell; using System.Threading.Tasks; using System.Diagnostics; namespace SE_Matrix_2d_v_1 { public partial class MainPage : PhoneApplicationPage { //   Random random = new Random(); //    double ScreenWidth = System.Windows.Application.Current.Host.Content.ActualWidth; double ScreenHeight = System.Windows.Application.Current.Host.Content.ActualHeight; //  public MainPage() { InitializeComponent(); CreateElement(); } //   ,      public void CreateElement() { int i, j, countWidth, countHeight; //     countWidth = (int)Math.Round(this.ScreenWidth / 50); countHeight = (int)Math.Round(this.ScreenHeight / 50); //    for (i = 0; i < countWidth; i++) { for (j = 0; j < countHeight; j++) { //  TextBlock TextBlock element = new TextBlock(); //    TextBlock element.Name = "TB_" + i + "_" + j; //    //element.Text = char.ConvertFromUtf32(random.Next(0x4E00, 0x4FFF)); //      element.Text = ""; //  //      TextBlock int wx = i * 50; int wy = j * 50; element.Margin = new Thickness(wx, wy, 0, 0); //    element.Foreground = new SolidColorBrush(Colors.Green); //    element.FontSize = 36; //     Grid LayoutRoot.Children.Add(element); } } } //      Grid ( ) private void Event_Grid_Tap_LayoutRoot(object sender, System.Windows.Input.GestureEventArgs e) { Start(); } //    public async void Start() { int count, iteration; //         iteration = 1; count = 0; //         while (count < iteration) { //       int ranX = random.Next(0, 10); //       int ranY = random.Next(0, 20); //     int length = random.Next(3, 7); //          int time = random.Next(30, 70); await Task.Delay(1); //   await RandomElementQ_Async(ranX, ranY, length, time); count++; } } //  ,      public async Task RandomElementQ_Async(int x, int y, int length, int timeOut) { //     ,     . Dictionary<int, TextBlock> dicElem = new Dictionary<int, TextBlock>(); // ,    ,     if ((y + i) < countHeight && (y + i) >= 0).   4  . int count = 0; //      length for (int i = 0; i < length; i++) { //    ,        //     int countHeight = (int)Math.Round(ScreenHeight / 50); // ,       ,      if ((y + i) < countHeight) { //   ,      string elementName = "TB_" + x + "_" + (y + i); //      object wantedNode = LayoutRoot.FindName(elementName); TextBlock element = (TextBlock)wantedNode; //    ,        ""  ""  dicElem[count] = (element); //     .  ( ) -   ,  -  . //  1, ,        255   . int rf = (int)Math.Round(255 / (double)(i + 1)) - 1; //    ,    . . await Change(element, timeOut, 255); //   ,     .     ,     . for (int k = 0; k <= i; k++) { //    ""   (,  y = -5) if (dicElem.ContainsKey(k)) { // ,      .   ""  TextBlock previousElement = dicElem[k]; //    // (rf * (k + 1)) - 20   ,             //       ( ) Task dsvv = Change(previousElement, timeOut, (rf * (k + 1)) - 20); } } count++; } } } //       public async Task Change(TextBlock element, int timeOut, int Opacity) { //       SolidColorBrush NewColor = new SolidColorBrush(new Color() { A = (byte)(255) /*Opacity*/, R = (byte)(0) /*Red*/, G = (byte)(Opacity) /*Green*/, B = (byte)(0) /*Blue*/ }); //   ""  1   "" element.Foreground = NewColor; //       for (int i = 0; i < 5; i++) { //     element.Text = char.ConvertFromUtf32(random.Next(0x4E00, 0x4FFF)); //      await Task.Delay(timeOut); } } //       ApplicationBar //private void BuildLocalizedApplicationBar() //{ // //    ApplicationBar    ApplicationBar. // ApplicationBar = new ApplicationBar(); // //            AppResources. // ApplicationBarIconButton appBarButton = new ApplicationBarIconButton(new Uri("/Assets/AppBar/appbar.add.rest.png", UriKind.Relative)); // appBarButton.Text = AppResources.AppBarButtonText; // ApplicationBar.Buttons.Add(appBarButton); // //         AppResources. // ApplicationBarMenuItem appBarMenuItem = new ApplicationBarMenuItem(AppResources.AppBarMenuItemText); // ApplicationBar.MenuItems.Add(appBarMenuItem); //} } } 


рдЦреИрд░, рдЖрд╡реЗрджрди рдХрд╛ рдкрд╣рд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛ рддреИрдпрд╛рд░ рд╣реИред рд░реАрдврд╝ рдХреА рд╣рдбреНрдбреАред
рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ "рдкреИрдиреЛрд░рдорд╛ рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдРрдк" рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ, рд╡рд┐рднрд┐рдиреНрди рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рддреБрд░рдВрдд рдЖрдкрдХреЗ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреА рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдВрдЧреЗред

рдкреБрдирд╢реНрдЪ рдореИрдВрдиреЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддрд╛рдХрд┐ WP8 рд╕реАрдЦрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдПрдХ рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рдХреА рддрд░рд╣ рдкреНрд░рддреАрдд рди рд╣реЛред рд╕рд╛рде рд╣реА рд╕рд╛рде рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рдЧреЛрдВ рдореЗрдВ рдЗрд╕рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдмрдврд╝рд╛рдирд╛ред рдЕрдЧрд░ рд╡рд╣рд╛рдБ рдЕрддреБрд▓рдиреАрдп рдХреНрд╖рдг рд╣реИрдВ - рдкреВрдЫреЗрдВред

Source: https://habr.com/ru/post/In195422/


All Articles