chevron-up reply instagram twitter2 feed3 finder search-25px-p0

Win8 ئەپ ئېچىش دەرىسلىكى(8) –كونۇپكا ياساش مىسالى

2013-11-05

ئالدىنقى دەرىسلىكلەردە كۆزنەك سەككىزگە ئەپ ئېچىشتىكى ئەڭ ئاساسى بىلىملەردىن ئۈگۈنۈپ ئۆتتۇق. ئەمدى ئەزىزلەرنى زىرىكتۈرۈپ قويماسلىق ئۈچۈن، ئىلگىرى ئۈگەنگەن نەرسىلەرنى جانلىق ئىشلىتىپ، ئاددىي بىر نەرسە تۈزۈپ باقايلى! بۇ قېتىم تۈزىدىغىنىمىز تولىمۇ ئاددىي بولغان تەقلىدىي تېلىفۇن كونۇپكىسى بولسۇن. يەنى:تېلىفۇن ئۇرۇشتا ئىشلىتىلىدىغان زۆرۈر كونۇپكىلارنى لايىقىدا ئورۇنلاشتۇرۇپ، خالىغان نومۇر كونۇپكىسىنى باسسا ئىكىراندا شۇ سان كۆرىنىدىغان، خاتالىق بولسا ئىكىراندىكى سانلارنى ئۆچۈرۈشكە بولىدىغان بىر قاتار ئىقتىداالارنى ئەمەلگە ئاشۇرۇپ باقايلى. خۇددى تۆۋەندىكى رەسىمدەك:

 

 


ئۇنداقتا يەڭنى تۈرۈپ، بەلنى رۇسلاپ ئىش باشلىدۇق: ئاۋۋال خالىغان نامدا يىڭىدىن تۈر قۇرۇڭ. ئاندىن
MainPage.xamlبەتنى ئېچىپ قارىساق:

 

 

يۇقارقى رامكا قىسقۇچى پۈتۈن بەت يۈزىنى كۆرسىتىدۇ، بىز كونۇپكا رايۇنى ئۈچۈن ئۇنىڭ ئىچىگە كىچىكرەك يەنە بىر رامكا ئورۇنلاشتۇرايلى ۋە ئوتتۇرىغا توغۇرلاپ، كەڭلىك، ئىگىزلىكلىرىنى مۇۋاپىق تەڭشەيلى؛ كودى تۆۋەندىكىدەك:

  

ئەستايىدىل قارىسىڭىز بولارنىڭ ئىشلىتىلىشى بىلەن Html دىكى div نىڭ ئىشلىتىلىشى ئاساسەن ئوخشاش.
ئەمدى كونۇپكا ئۈچۈن بەلگىلىگەن بۇ رايۇننى مۇۋاپىق بۆلۈپ، كونۇپكىلانى ھاسىللايلى. يۇقارقىGrid نىڭ ئارىسىغا تۆۋەندىكى كودلارنى يېزىڭ. كاتاكچە ھاسىللاش كودى تۆۋەندىكىدەك:


                
                
                
                
                
            
            
                
                
                
            
            
                
                    
                    
                
                
                    

                

            

يۇقارقى RowDefintionدېگىنى توغرا قۇر ئېنىقلىمىسىنى كۆرسىتىدۇ(بىز ئىگىزلىكى مەزمۇنغا قاراپ تەڭشىلىدىغان بەش قۇرغا بۆلىدۇق)، ColumnDefitionبولسا تىك قۇرغا بۆلۈشنى كۆرسىتىدۇ(بىز كەڭلىكى مەزمۇنغا قاراپ تەڭشىلىدىغان ئۈچ قۇرغا بۆلىدۇق). ئاندىن سولدىن بىرىنچى كاتەكنى تاللاپ، ئوڭغا قاراپ ئۈچ كاتەكنى بىرلەشتۈرۈپ، ئاندىن يەنە تىك ئىككى بۆلەككە بۆلۈپ، بىرتەرىپىنى مەزمۇنغا قاراپ تەڭشىلىدىغان، يەنە بىر تەرىپىنى ئىشىپ قالغان كەڭلىكتە بىكىتتۇق(بۇ رايۇن ئىكران ئورنىدا سانلارنى كۆرسىتىش ۋە ئۆچۈرۈش كونۇپكىسى قويۇش ئۈچۈن ئىشلىتىلىدۇ. ئەمدى قارىساق كونۇپكا رايۇنى بۆلۈپ تەييار قىلدۇق، ئەمما ھەقىقىي كونۇپكا ئۈنۈمىنى چىقىرىش ئۈچۈن، يۇقارقى ھەربىر كاتاككە پاسون ئۈنۈملىرى قوشۇشقا توغرا كىلىدۇ. ئەگەر ئايرىم پاسون يازىمىز دېسەك سەل ئاۋارىچىلىق بولۇپ قالىدۇ. شۇڭا بايا بىز قوشقان كىچىك رامكا نىڭ ئىچىگە ئاشۇ قىسقۇچ ئىچىدىكى مەلۇم تۈردىكى ئىلمىنىتلارنىڭ خاسلىقلىرى ئۈچۈن ئورتاق ئىشلىتىلىدىغان خاسلىق قىممەتلىرىنى بەلگىلەپ بەرسەكلا بولىدۇ(چۈنكى ھەممە كونۇپكا ئوخشاش پاسوندا). تۆۋەندىكى كودنى يۇقارقى كاتاكچە ئايرىش كودلىرىنىڭ ئۈستىگە قويۇڭ:


                
            

يەنى: Gridنىڭ ئىچىگە  نامىدا مەنبە پاسونى قوشتۇق (خۇددى Html ئارىسىغا Css قىستۇرغاندەكلا). كونۇپكا ئېلمىنىتى ئۈچۈن، "بېسىلىش ھالىتى"، "گورزىنتال تىزىلىشى"، "ئىگىزلىك"، ۋە خەت چوڭلۇقى ئۈچۈن قىممەت بىكىتتۇق. دېمەك، نامى Button بولغان ئېلمىنىتلارنىڭ ھەممىسى موشۇ قىممەتنى ئىشلىتىدۇ.
تۆۋەندىكى كودلارنى ئاخىرىغا قويسىڭىزلا كونۇپكا تاختىسىنىڭ كۆرۈنمە يۈزى ھاسىل بولىدۇ. كودى:

 

بۇلارنى بىر – بىرلەپ چۈشەندۈرۈپ ئولتۇرمايمەن، ئالدىنقى دەرىسلىكلەردە ئۈگۈنۈپ بولغا ئىدۇق. دىققەت قىلساق، Button قىسقۇچى ئۈچۈن deleteButton دەپ Name ئىشلىتىلگەنلىكىنى، ۋە باشقا كونۇپكىلارغا OnDeleteButtonClick, OnCharButtonClick نامىدا Click ئىشى قوشۇلغانلىقىنى بايقايمىز (ئەسكەرتىش: خەلقارا ئۆلچەم بويىچە ئېنگىلىزچە قىسقۇچ ناملىرى ئىشلەتتىم، ئادەتتە ULY ئىشلىتىشكىمۇ بولىدۇ) . ئەمدى.xaml MainPage نىڭ ئاستىدىكى MainPage.xaml.cs ھۆججىتىنى ئېچىپ، تۆۋەندىكى كودلارنى پۈتۈنلەي باستۇرۇڭ:

[codesyntax lang="csharp"]

using System;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
namespace Telifun
{
    public sealed partial class MainPage : Page
    {
        // ikki dane ozgerguchi miqdargha eniqlima
        string inputString = "";
        char[] specialChars={'*','#'};
        // bet yuzi mezmunlirini elish
        public MainPage()
        {
            this.InitializeComponent();
        }

        // konupka besilghandiki ish:sanlarni Text haletke aylandurup ekran eayunigha oqup alidu
        private void OnCharButtonClick(object sender, RoutedEventArgs e)
        {
            Button btn = sender as Button;
            inputString += btn.Content as string;
            FormatText();
        }
        // ekran rayunidiki sanlarni ochuridu
        private void OnDeleteButtonClick(object sender, RoutedEventArgs e)
        {
            inputString=inputString.Substring(0,inputString.Length-1);
            FormatText();
        }
        // belgilerni Text haletke aylandurush funkisiyesi
        void FormatText()
        {
            bool hasNonNumbers = inputString.IndexOfAny(specialChars) != -1;
            // san 3tin az yaki 10 din kop bolsa
            if (hasNonNumbers || inputString.Length < 4 || inputString.Length > 10)

                resultText.Text = inputString;
                // eger 8 din az bolsa 3sandin kiyin siziqche qoshidu
            else if (inputString.Length < 8)
                resultText.Text = string.Format("{0}-{1}", inputString.Substring(0, 3),
                    inputString.Substring(3));
            else
                //unda bolmisa aldinqi 3 sanni yalang tirnaqqa alidu(rayun nomur dep) we yalang tirnaqni yapidu
                resultText.Text = string.Format("({0}) {1}-{2}", inputString.Substring(0, 3), inputString.Substring(3, 3), inputString.Substring(6));
            deleteButton.IsEnabled = inputString.Length > 0;
        }
    }
}

[/codesyntax]

دېققەت: ئەگەر سىز قۇرغان تۈر نامى Telifun بولمىسا ئاۋۇ ئۈستىدىكى namespace نى ئۆزگەرتىشنى ئۇنۇتماڭ. يۇقارقى كودلارغا ئاددىي ئىزاھات بېرىلدى. ساپلا C# كودلىرى بولۇپ، ئەستايىدىل قارىسىڭىز چۈشىنىپ كىتىسىز! يۇقارقىلارنى مۇۋەپپىقىيەتلىك تاماملىغاندىن كىيىن،ئەڭ ئۈستىدىكى رەسىمدىكىدەك ئۈنۈمنى كۆرىسىز!

 

تەشنا

ئۆز - ئۆزۈمنى ئىزدەش بوسۇغىسىدا...

«Win8 ئەپ ئېچىش دەرىسلىكى(8) –كونۇپكا ياساش مىسالى » دىكى پىكىرداشلار 8 نەپەر

  1. تارتقان جاپالار بىكارغا كەتتى – دە!

  2. ھەي ئىست، سىلىنىڭكىگە ئوخشاش مەخسۇس iOS كە ئەپ ئېچىش بىلوگىدىن ياكى تورىدىن بىرەرى قۇرۇلغان بولسا قانچە ياخشى بولاتتى-ھە. 😥 😥 😥

    • @يارۇق ئۇمۇ بوپ قالار! سىز ئۈگېنىپ بولسىڭىز يارۇق بلوگىدىن شۇنداق دەرىسلىكلەر چىقامدۇ تېخى!

  3. تەشنايىكا بىلىملىرىڭىزدىن بىزمۇ كىچىك بولغىنىمىزغا قارىماي بىر ئىككى شىڭگىل ئۈگۈنىۋالاي بىلىملىرىڭىزنى ئايىماي داستىخانغا تۆكەۋىرەسىز ….

  4. ئەسسالامۇ ئەلەيكۇم ، مەن يېقىندىن بويان vb2012 نى ئۆگىنىۋاتقان ھازىر خېلى ئىلگىرلەش بولدى، مەن مۇشۇ wp تىلفۇنى ۋە win8 نىڭ ئەپلىرىنى ياساشقا بەك ھېرىس بولۇپ قالدىم. مەن دەرىسلىكىڭىزنى ئەستايىدىل كۆرىۋاتىمەن ،لېكىن ئۆزۈم vb دىن باشقىنى قەتئى بىلمىگەچكە دەرىسلىكىڭىزنى ئانچە چۈشۈنۈپ بولالمىدىم (خۇدايىم بۇيرىسا vb نى ئۆگنىىپ بولۇپ باشقا تىللانىمۇ ئۆگىنىمەن )ماڭا ئېغىر كۆرمەي vbدىن پايدىلنىپ wp تىلفۇنى ۋەwin8ئەپلىرنى ياساشنى ئۆگىتىدىغان كىتابدىن بىرنى تەۋسىيە قىلسىڭىز . يەنە بىر گەپ مۇشۇ دەرىسلىكىزنى ئۈزۈپ قويمىسىڭىز ، مۇشۇ بانىدا رەھمەت ئېيتىۋالاي. رەھمەت سىزگە ، خالىس ياردىمىڭىزدىن ناھايتى خۇرسەنمەن.

    • @تارىم ۋەئەلەيكۇم ئەسسالام! مەن C# ۋە C++ دېگەنلەرنى ئۈگېنىپتىكەنمەن. Vb غا نىسبەتەن ناتونۇش، شۇڭا ھازىرچە C# تا يېزىپ ماڭدىم. ئەمەلىيەتتە ئىشلىتىش ئۇسۇلى تامامەن ئوخشاش…
      تورلاردىن ئاختۇرۇپ باقساممۇ VB دا ۋېندوۋس ئەپلىرىنى ئاچىدىغان ماتېرىياللار بەك ئازكەن. باشقا تىللارنىڭ ماتېرىياللىرى مەندە خىلى كۆپ. ئاللاھ خالىسا ئۇنىمۇ بەھىرلىنىپ قوياي.
      بېشىدا شۇنچىلىك قىزغىنلىق بىلەن دەرىسلىك ئىشلىسەم ئۈگېنىدىغان، ھېچبولمىسا قىزىقىدىغان ئادەمنىڭ تايىنى يوق، سەل ئىككىلىنىپمۇ قالغانتىم. ئەمما توختىتپ قويمايمەن.

  5. دىمىسىمۇ vb توغرىسىدىكى كىتاب ماتىرياللار شۇنداق ئاز ئىكەنكىن ، مەنمۇ سەل قىينىلىپ قالدىم، ئەمدى ئۆگەنگەنكىن تاشلاپ قويماي ئۆگىنىپ پۈتتۈرمىسەم بولمايدۇ.كېيىن مەنمۇ c# ۋە c++لەرنى ئۆگىنەرمەن . ھازىرمۇ سىزنىڭ بىلوگىڭىزدىن خېلى بىلىمگە ئىگە بولدۇم . سىزمۇ تىرىشىپ بۇ تۈرنى باشقا ئېلىپ چىقىشىڭىزغا تىلەكداشلىق بىلدۈرمەن.

سۆز قالدۇرۇش