Langsung ke konten utama

Windows Phone Tutorial - Membuat Sliding Menu (4) - Mengimplementasikan Swipe Gesture




Oke, ini sudah bagian terakhir dari seri tutorial pembuatan Sliding Menu di Windows Phone. Kalau misalkan Anda sudah mengikuti postingan saya yang sebelumnya, Anda mungkin akan bertanya "Bagaimana mengimplementasikannya dengan cara menggeser layar saja?". Jawabannya adalah dengan menggunakan swipe gesture.

Yang pertama kalian lakukan adalah tambahkan event ManipulationStarted dan ManipulationCompleted di LayoutRoot kalian (kalau di saya nama yang saya kasih untuk event ini adalah StartSlideMenu dan SlideMenuComplete). ManipulationStarted ini akan terjadi apabila user mulai melalukan semacam interaksi pada kontrol ybs. Sedangkan ManipulationCompleted akan terjadi ketika interaksi selesai terjadi. Untuk mempelajari lebih lanjut mengenai event-event ini, silahkan lihat link ini dan ini.

Hasil akhir kodingan XAML kalian akan terlihat sepert ini

<!--LayoutRoot is the root grid where all page content is placed-->
    <Grid x:Name="LayoutRoot" Background="Transparent" ManipulationDelta="SlideMenu" ManipulationStarted="StartSlideMenu" ManipulationCompleted="SlideMenuComplete">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

 ...

Kemudian di code-behindnya tambahkan kodingan berikut ini.

Point currentPoint, initialPoint;

...

private void StartSlideMenu(object sender, ManipulationStartedEventArgs e)
{
   initialPoint.X = e.ManipulationOrigin.X;   
}

private void SlideMenuComplete(object sender, ManipulationCompletedEventArgs e)
{
   var velocities = e.FinalVelocities;
   var lin = velocities.LinearVelocity;
   
   if (lin.X - initialPoint.X >= 750 && Math.Abs(lin.Y - initialPoint.Y) <= 50)
   {
        //Periksa apakah menu tertutup
        //jika iya, Swipe Kanan
        if (!isMenuIn)
        {
           MenuIn.Begin();
        }
   }

   if (initialPoint.X - lin.X >= 750 && Math.Abs(lin.Y - initialPoint.Y) <= 50)
   {
        //Periksa apakah menu terbuka
        //jika iya, Swipe Kiri
        if (isMenuIn)
        {
            MenuOut.Begin();
        }
   }
}

Kodingan akhir kalian akan seperti ini

namespace SlideMenuModule
{
    public partial class MainPage : PhoneApplicationPage
    {

        bool isMenuIn = false;
        Point currentPoint, initialPoint;

        // Constructor
        public MainPage()
        {
            InitializeComponent();
            MenuIn.Completed += MenuIn_Completed;
            MenuOut.Completed += MenuOut_Completed;
        }

        void MenuOut_Completed(object sender, EventArgs e)
        {
            isMenuIn = false;
        }

        void MenuIn_Completed(object sender, EventArgs e)
        {
            isMenuIn = true;
        }

        private void Click_Menu(object sender, RoutedEventArgs e)
        {
            if (isMenuIn)
            {
                isMenuIn = false;
                MenuOut.Begin();
            }
            else
            {
                isMenuIn = true;
                MenuIn.Begin();
            }
        }
  
        private void StartSlideMenu(object sender, ManipulationStartedEventArgs e)
        {
            initialPoint.X = e.ManipulationOrigin.X;   
        }

        private void SlideMenuComplete(object sender, ManipulationCompletedEventArgs e)
        {
            var velocities = e.FinalVelocities;
            var lin = velocities.LinearVelocity;

            if (lin.X - initialPoint.X >= 750 && Math.Abs(lin.Y - initialPoint.Y) <= 50)
            {
                //Periksa apakah menu tertutup
                //jika iya, Swipe Kanan
                if (!isMenuIn)
                {
                    MenuIn.Begin();
                }
            }

            if (initialPoint.X - lin.X >= 750 && Math.Abs(lin.Y - initialPoint.Y) <= 50)
            {
                //Periksa apakah menu terbuka
                //jika iya, Swipe Kiri
                if (isMenuIn)
                {
                    MenuOut.Begin();
                }
            }
        }
    }
}

Oke, selamat. Anda sudah membuat Sliding Menu di Windows Phone menggunakan swipe gesture. :)




Komentar

Postingan populer dari blog ini

Mengubah Repository Linux Menjadi Repository Lokal

Hlo teman-teman, pengen nge-share lagi nihh.. Baru-baru ini saya menginstall Deepin Linux, karena melihat UI cantiknya, dan saya juga mulai tertarik ke yang berbasis open source. Instalasi OS ini sangat mudah dan tidak make yang ribet-ribet. Hsilnya juga cantik kok.

PHP Tutorial - Menjalankan Program .exe "Hello World!" Melalui PHP

Hai semua, saya ingin berbagi ilmu yang saya dapatkan sambil mengerjakan skripsi saya. Pernah tidak, kalian sudah bikin suatu program keren menggunakan bahasa C/C++, tapi kalian harus menjalankannya di SERVER??? Contoh kasus yang membuat Anda melakukan ini apa? Contoh sederhananya membuat Web Service. Di mana operasi perhitungan service yang ditawarkan menggunakan bahasa C/C++. Kalau misal kalian mau bikin make PHP dari awal web servicenya, sebenarnya tidak apa-apa juga, tapi kalau misalkan sudah ada program C/C++-nya, mending make yang sudah ada daripada buat dari awal lagi kan??? :)

Inkscape tutorial - Pembuatan Bola Biliar yang Tampak 3D

Salah satu dari aspek design yang sangat populer sekarang ini adalah pembuatan gambar 3D. Lebih dari satu teknik dapat digunakan untuk membuat gambar 3D. Bahkan gambar 2D bisa dibuat terlihat 3D. Di sini saya akan menunjukkan bagaimana membuat bola biliar tapi yang tampak tiga dimensi menggunakan Inkscape. Ini adalah materi yang saya pelajari dan kopas dari sini . Langkah-langkahnya adalah sebagai berikut: - Buat sebuah lingkaran dengan memilih circle tool. Agar lingkarannya tidak asal, buatlah sambil menekan Ctrl. - Hilangkan stroke-nya dengan klik kanan pada warna stroke di bagian bawah, kemudian pilih Remove Stroke. - Ganti warna lingkaran tersebut dengan warna dasar bola yang kalian inginkan. Di sini saya menggunakan warna coklat tua. - Pilih gradient tool (Ctrl+F1), dan pastikan kalian memilih tombol gradasi radialnya pada bagian atas jendela kalian setelah kalian memilih gradient tool. - Pastikan lingkaran bawah yang terpilih setelah kalian melakukan gr...