Facebook RSS Feed
 

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

TextFlow ile WPF uygulamalarında ekrandan taşan yazıları kaydırılabilir şekilde göstermek mümkündür. Uygulamamızda bir TextFlow nesnesi oluşturup içeriğini dolduracağız. GPIO Button Input Provider sınıfından yararlanarak yön butonları ile kayan yazıları kontrol edeceğiz.

TextFlow Oluşturmak

TextFlow nesnesi kendisine eklenen yazıları peşpeşe ekleyerek gösterir. Tek bir yazı yada birden çok yazı ile kullanılabilir. Eklenen yazıların yazı tipleri, boyutları ve renkleri isteğe göre ayarlanabilir. Window uygulamalarına dahil edilen GPIO Button Input Provider sınıfı ile entegre çalışarak ekranın dışına taşan yazılar buton kullanılarak kaydırılabilir. Kaydırma işlemi satır satır yada sayfalar şeklinde ayarlanabilir. Örneğimizde aşağıdaki görünümü veren bir uygulama üzerinde duracağız:

- -

Visual Studio üzerinden yeni bir Micro Framework Window Application oluşturalım. Resources.resx dosyasına "C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.1\Fonts" konumunda bulunan "NinaB.tinyfnt" yazı tipini ekleyelim. Son aşamada ise Program.cs dosyasının içeriğini aşağıdaki gibi düzenleyerek TextFlow 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.Media;
using Microsoft.SPOT.Presentation.Controls;
using Microsoft.SPOT.Hardware;
 
namespace MF_WPF_TextFlow
{
    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;
 
            // Metinde kullanılacak bir yazı tipi belirleyelim:
            Font fontNinaB = Resources.GetFont(Resources.FontResources.NinaB);
 
            // Metinde kullanılacak renkleri belirleyelim:
            Color mavi = ColorUtility.ColorFromRGB(0, 0, 255);
            Color kirmizi = ColorUtility.ColorFromRGB(255, 0, 0);
            Color siyah = ColorUtility.ColorFromRGB(0, 0, 0);
 
            // TextFlow'u dolduracak metinleri ekleyelim:
            String metin1 = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam "
            + "vulputate, nibh sed fringilla bibendum, velit ante posuere lacus, at gravida urna "
            + "augue vitae dolor. Fusce ut lorem non est pretium viverra. Nullam semper ullamcorper "
            + "risus id elementum. Etiam tellus turpis, faucibus vitae ultricies ut, gravida eget "
            + "erat. Integer lacinia rhoncus placerat. Quisque vel erat arcu, id faucibus metus. ";
            
            String metin2 = "Maecenas eleifend pharetra commodo. Nam luctus porttitor ligula, quis "
            + "bibendum enim ornare interdum. Vivamus posuere est vitae dui convallis facilisis. "
            + "Donec dui enim, ullamcorper non ultrices at, rutrum et ligula. Vestibulum ante ipsum "
            + "primis in faucibus orci luctus et ultrices posuere cubilia Curae; In erat ante, "
            + "auctor vel semper sed, tincidunt nec erat. Aenean sem leo, mollis facilisis viverra "
            + "a, varius vitae sapien. Praesent vel arcu id odio adipiscing molestie fermentum "
            + "commodo velit. Phasellus blandit purus orci. Etiam condimentum nulla dignissim eros "
            + "posuere eleifend. In porttitor augue at nisi eleifend cursus. Aenean eget tortor "
            + "sapien, a venenatis lectus. ";
 
            String metin3 = "Aenean justo metus, dictum sed consequat at, suscipit ut erat. Integer "
            + "lectus tellus, accumsan a porta in, imperdiet et mi. Mauris gravida mollis porttitor. "
            + "In hac habitasse platea dictumst. Sed vel mauris metus, dignissim volutpat risus. "
            + "Sed tincidunt felis at tellus hendrerit euismod. Nunc posuere lectus eget eros semper "
            + "a placerat lectus ornare. Quisque pharetra felis at est dapibus ullamcorper. Vivamus "
            + "magna arcu, varius et sodales vitae, tempus in lacus. Cras velit felis, molestie non "
            + "hendrerit ac, aliquam aliquam nibh.";
 
            // TextFlow objesi oluşturalım:
            TextFlow textFlow1 = new TextFlow();
 
            // TextFlow'un içeriğini dolduralım:
            textFlow1.TextRuns.Add(metin1, fontNinaB, mavi);
            textFlow1.TextRuns.Add(metin2, fontNinaB, kirmizi);
            textFlow1.TextRuns.Add(metin3, fontNinaB, siyah);
 
            // TextFlow'un satır kaydırma stili:
            textFlow1.ScrollingStyle = ScrollingStyle.LineByLine;
 
            // TextFlow'un genişlik ve yükseklik ayarı:
            textFlow1.Width = 280;
            textFlow1.Height = 220;
 
            // TextFlow'un hizzalamaları:
            textFlow1.HorizontalAlignment = HorizontalAlignment.Center;
            textFlow1.VerticalAlignment = VerticalAlignment.Center;
            textFlow1.TextAlignment = TextAlignment.Left;
 
            // TextFlow'u ana pencerenin alt elemanı olarak ekleyelim:
            mainWindow.Child = textFlow1;
 
            // Pencereyi görünür yapalım:
            mainWindow.Visibility = Visibility.Visible;
 
            // Button Focus'u TextFlow'a ayarlayalım.
            Buttons.Focus(textFlow1);
 
            return mainWindow;
        }
    }
}

Uygulamayı çalıştırdığınızda yön tuşlarıyla kontrol edilebilir bir TextFlow nesnesi oluşturmuş olacaksınız.

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