Merhaba c# öğrenene kodlamacı meslektaşlarım ve değerli konuklar. Bu makalemde sizlere Google Chrome kullanıcısı olarak Google Chrome tarzında bir sekme kontrolü yapımını göstereceğim. Bunun için makalede yazan şeyleri isterseniz takip edebilir, istersenizde makalenin sonunda bulunan videoyu izleyerek daha detaylı ayrıntıları görebilirsiniz. Yapılacakları sizlere adım adım anlatacağım. YouTube üzerinden bana abone olarak ve videoyu paylaşıp başka kişilerin izlemelerini sağlarsanız en büyük desteği vermiş olursunuz. Sizleri sıkmadan yormadan eğitim konuları oluşturuyorum. Umarım faydalı olur şimdiden kolay gelsin.
[adinserter block=”6″]
1. EasyTabs’ı yükleyin
EasyTabs kütüphanesini kullanmak için. EasyTabs, Chrome, Firefox, Trillian veya diğer web tarayıcıları gibi dahili bir tarayıcı kullanmanıza izin veren kullanımı kolay bir bileşendir. Kaynak kodu Github’da barındırılmaktadır. Visual Studio’da bunu yapmak için. Açılır listeden NuGet Paketlerini Yönet seçeneğini seçin:
Yönetici’de göz at sekmesine gidin ve EasyTabs paketini arayın:
EasyTabs by Luke Stratman adlı ilk paketi seçip projenize yerleştirin. Kurulum bittiğinde, kodunuzda EasyTabs ad alanını kullanabileceksiniz.
2. Basit bir Test Formu oluşturun
Sekmeler ilkeyi izler, oluşturulan her sekmenin yerel bir Formun örneği olacağından, Form1 olarak oluşturacağımız ilk, her oluşturulan Sekmenin içeriği olacaktır. AppContainer’ın oluşturulması sırasında bir sonraki adımda bu davranışı koşullu olarak değiştirebilirsiniz, ancak uygulamanızın hızlı çalışmasını sağlamak ve kütüphanenin nasıl çalıştığını anlamak için, tek ve basit bir Formla test etmenizi öneririz.
Bu örnekte Form1’imiz gerçekten basit ve birçok yerel bileşene sahip, ancak hiçbir şey yapmıyorlar:
Ancak özel olan kodun içinde. Formunuz, ParentForm’u döndüren ParentTabs özelliği için alıcıya sahip olmalı, bu nedenle özelliği formunuzun kaynak koduna eklediğinizden emin olun:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
// 1. Use Easy Tabs
using EasyTabs;
namespace Sandbox
{
public partial class Form1 : Form
{
// 2. Important: Declare ParentTabs
protected TitleBarTabs ParentTabs
{
get
{
return (ParentForm as TitleBarTabs);
}
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
Şimdi bu Form kabın bir sekmesinde gösterilebilir.
3. Bir AppContainer Formu oluşturun
Daha sonra, başvurunuzda TitleBarTabs Kullanıcı Arayüzünü genişleten yeni bir Form oluşturmanız gerekecektir. Bu form teorik olarak mevcut değildir ve tek başına görülemez, sadece uygulamanızın Giriş Noktası’na eklenecek sekmeler için bir sarmalayıcı olarak çalışır. Kod içeriği çok basit olacak ve basit bir şey gerektirecek, kullanıcının başka bir Form örneğiyle yeni bir Sekme oluşturmasını sağlayan bir yöntem, örneğimizde kullanıcının oluşturduğu her sekme önceki adımda oluşturulan Form1 örneği olacak Bu, başvurunuzu test etmek için, Form1’in içeriğini daha sonra belirtildiği gibi değiştirebilirsiniz.
Önemli
CS dosyasının açıkça bir Form örneği olması gerekir, basit bir C # sınıfı değil, aksi halde her Formda bulunan InitializeComponent yöntemi kullanılamaz ve kodunuz derlenmez. Bu, Solution Explorer alanındaki asistan kullanılarak formun oluşturulması sırasında belirlenebilir.
using System;
// Use EasyTabs
using EasyTabs;
namespace YOUR_APPLICATION_NAMESPACE
{
public partial class AppContainer : TitleBarTabs
{
public AppContainer()
{
InitializeComponent();
AeroPeekEnabled = true;
TabRenderer = new ChromeTabRenderer(this);
}
// Handle the method CreateTab that allows the user to create a new Tab
// on your app when clicking
public override TitleBarTab CreateTab()
{
return new TitleBarTab(this)
{
// The content will be an instance of another Form
// In our example, we will create a new instance of the Form1
Content = new Form1
{
Text = "New Tab"
}
};
}
// The rest of the events in your app here if you need to .....
}
}
AppContainer Formunu Visual Studio tasarımcısında görmeye çalışırsanız, şunu göreceksiniz:
Bu hatayı alacaksınız, çünkü açıklandığı gibi, tasarımcı soyut olan bir şey çizmeye çalışıyor (formumuz FormBarTab’leri Form yerine uzatıyor), bu nedenle, yalnızca Formda görmeye çalışırsanız bir istisna atılacak Tasarımcı, aksi takdirde tamamen geçerlidir.
4. Uygulamanızın Giriş noktasını AppContainer olarak ayarlayın
Ana Program.cs dosyanızın kodunu, uygulamanızın giriş noktasını değiştirmeye devam edin. Burada uygulamanın (bir AppContainer örneği) varsayılan yerine TitleBarTabsApplicationContext kullanılarak başlatılması gerektiğini belirtmeniz gerekir. Burada, uygulamanızda oluşturulan ilk sekmenin içeriğinin ne olacağını, bunun basit bir öğreticiden bahsedildiği gibi, 2. adımda yaratılan Form1 örneğinin bir örneği olacağını göstereceksiniz:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using EasyTabs;
namespace YOUR_APPLICATION_NAMESPACE
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
AppContainer container = new AppContainer();
// Add the initial Tab
container.Tabs.Add(
// Our First Tab created by default in the Application will have as content the Form1
new TitleBarTab(container)
{
Content = new Form1
{
Text = "New Tab"
}
}
);
// Set initial tab the first one
container.SelectedTabIndex = 0;
// Create tabs and start application
TitleBarTabsApplicationContext applicationContext = new TitleBarTabsApplicationContext();
applicationContext.Start(container);
Application.Run(applicationContext);
}
}
}