Facebook RSS Feed
 

.NET Micro Framework: WPF Uygulamalarında ScrollViewer Kullanımı

ScrollViewer, ekran boyutlarından geniş UIElement içeriğinin ekran üzerinde gösterilmesini sağlar. Yön butonları, gesture yada dokunmatik kontrollerle içeriği kaydırılabilir. ScrollViewer içeriğine bir yada (StackPanel kullanarak) birden fazla alt eleman eklenmesi mümkündür. Örnek uygulamamızda geniş bir resim üzerinde yön butonlarıyla kaydırma yapacağız.

ScrollViewer Oluşturmak

Geliştireceğimiz uygulama, 614x340 boyutlarında bir gif resmini 320x240 boyutunda ekrana sığacak şekilde gösterecektir. Window uygulamalarıyla gelen GPIO Button Input Provider sınıfı ile entegre çalışan ScrollViewer, yön butonu girişlerini yakalayacak ve resmi hareket ettirecek. Her butona basışta yatay ve dikey hareket miktarlarını LineHeight ve LineWidth özellikleriyle ayarlayacağız. Offset özelliklerini ayarlayarak da uygulama başlangıcındaki pozisyonlamayı belirleyeceğiz.

- -

Visual Studio üzerinden yeni bir Micro Framework Window Application oluşturalım. Resources.resx dosyası içerisine aşağıdaki "DunyaHaritasi.gif" dosyasını ekleyelim.

DunyaHaritasi

Şimdi Program.cs dosyasının içeriğini değiştirerek ScrollViewer kullanımına göz atalım:

Program.cs

using System;
using Microsoft.SPOT;
using Microsoft.SPOT.Input;
using Microsoft.SPOT.Presentation;
using Microsoft.SPOT.Presentation.Controls;
using Microsoft.SPOT.Presentation.Media;
using Microsoft.SPOT.Hardware;
 
namespace MF_Scroll_Viewer
{
    public class Program : Microsoft.SPOT.Application
    {
        public static void Main()
        {
            Program myApplication = new Program();
            Window mainWindow = myApplication.CreateWindow();
 
            // GPIO pinlerini butonlara bağlayan GPIO Button Input Provider objesi oluşturalım:
            GPIOButtonInputProvider inputProvider = new GPIOButtonInputProvider(null);
 
            myApplication.Run(mainWindow);
        }
 
        private Window mainWindow;
 
        public Window CreateWindow()
        {
            // Ekran çözünürlüğünde bir Window objesi oluşturalım:
            mainWindow = new Window();
            mainWindow.Height = SystemMetrics.ScreenHeight;
            mainWindow.Width = SystemMetrics.ScreenWidth;
 
            // ScrollViewer oluşturalım:
            ScrollViewer scrollViewer = new ScrollViewer();
 
            // ScrollViewer'in özelliklerini ayarlayalım:
            scrollViewer.ScrollingStyle = ScrollingStyle.LineByLine; // Kaydırma stili
            scrollViewer.Width = 320;     // Genişlik
            scrollViewer.Height = 240;    // Yükseklik
            scrollViewer.LineHeight = 50; // Dikey kaydırma adım boyu
            scrollViewer.LineWidth = 50;  // Yatay kaydırma adım boyu
            scrollViewer.HorizontalOffset = 250; // Başlangıçya soldan kaydırma noktası
            scrollViewer.VerticalOffset = 50;    // Başlangıçta yukarıdan kaydırma noktası
 
            // ScrollViewer'a resim ekleyelim:
            Image imgHarita = new Image(Resources.GetBitmap(Resources.BitmapResources.DunyaHaritasi));
            scrollViewer.Child = imgHarita;
 
            // ScrollViewer'ı ana pencerenin alt elemanı olarak ekleyelim:
            mainWindow.Child = scrollViewer;
 
            // Pencereyi görünür yapalım:
            mainWindow.Visibility = Visibility.Visible;
 
            // Button Focus'u ScrollViewer'a ayarlayalım.
            Buttons.Focus(scrollViewer);
 
            return mainWindow;
        }
    }
}

Uygulamayı çalıştırıp yön butonlarına bastığınızda dünya haritasının kaydığını göreceksiniz.

Uygulama kodlarını buradan indirebilirsiniz.




 
Hoşgeldiniz!
Son güncelleme: 25.12.2016
-
Yeni Teknik Yazılar
Latte Panda İncelemesi
Turta IoT HAT İncelemesi
USB Gamepad Kullanımı
GPIO Kullanımı
VEML6075 UV Sensör Kullan...
-
İlgili Gruplar
.NET MF ve Gadgeteer FB Grubu
İst. IoT & Wearables Meet-up
-
 

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.Copyright © 1999 - 2017, Umut Erkal. Bu materyal, "Creative Commons Public Licence" ile sunulmuştur.
Kaynak göstererek ve ücretsiz olarak, aynı şartlar altında paylaşabilir ve kullanabilirsiniz. | Kullanım Sözleşmesi