öncelikle bir winform açıp içerisinde winapi classı oluşturup içine yazalım. Bu sınıfta GetSystemMetrics fonksiyonu ile kullanıcının çalıştıgı ekranın maksimum ölçülerini aldık. SetWindowPos ile de bu ekran ayarlarını çağırdığımız akrana ayarlamasını yapmak için kullandık.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
namespace icon
{
class WinApi
{
[DllImport("user32.dll", EntryPoint = "GetSystemMetrics")]
public static extern int GetSystemMetrics(int which);
[DllImport("user32.dll")]
public static extern void
SetWindowPos(IntPtr hwnd, IntPtr hwndInsertAfter,
int X, int Y, int width, int height, uint flags);
private const int SM_CXSCREEN = 0;
private const int SM_CYSCREEN = 1;
private static IntPtr HWND_TOP = IntPtr.Zero;
private const int SWP_SHOWWINDOW = 64;
public static int EkranX
{
get { return GetSystemMetrics(SM_CXSCREEN); }
}
public static int EkranY
{
get { return GetSystemMetrics(SM_CYSCREEN); }
}
public static void SetWinFullScreen(IntPtr hwnd)
{
SetWindowPos(hwnd, HWND_TOP, 0, 0, EkranX, EkranY, SWP_SHOWWINDOW);
}
}
}
bir de openstate adında bir class acalım. Bu sınıfta formun tam ekran olma fonksiyonunu ve kucuk ekran olma fonksiyonunu winapi sınıfı kullanarak oluşturalım.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace icon
{
internal class OpenState
{
private bool IsMaximized = false;
public void FullEkran(Form AnaForm)
{
if (!IsMaximized)
{
IsMaximized = true;
AnaForm.WindowState = FormWindowState.Maximized;
AnaForm.FormBorderStyle = FormBorderStyle.None;
AnaForm.TopMost = true;
WinApi.SetWinFullScreen(AnaForm.Handle);
}
}
public void KucukEkran(Form Form1)
{
Form1.WindowState = FormWindowState.Normal;
IsMaximized = false;
}
}
}
Burada ki Form1 projemizde tam ekran yapmaya çalıştığımız Formumuzun adıdır. şimdi ayarlama yapmak istediğimiz formumuza yazdığımız bu sınıfları kullanarak ayarlama yapalım.
using System.Threading.Tasks;
using System.Windows.Forms;
namespace fullekran
{
public partial class Form1 : Form
{
OpenState openstate = new OpenState();
public Form1()
{
InitializeComponent();
this.WindowState = FormWindowState.Maximized;
this.TopMost = true;
}
private void button1_Click(object sender, EventArgs e)
{
openstate.KucukEkran(this);
}
private void Form1_Load(object sender, EventArgs e)
{
openstate.FullEkran(this);
}
}
}
Not : Bu özelliğin çalışması için formun FormBorderStyle özelliğini properties ekranından none yapmanız gerekiyor
Formu çalıştırdığınızda tüm ekranı kaplayacak ve windowsa ait görev çubuğuda ekranda görünmeyecektir. ekranı kapatmak bir buton da olmayacaktır. Fakat klavyedeki windows tusu alt+f4 gibi tuşlarla bu ekrandan çıkılabilir. bunları da engellemek isterseniz buradaki yazıdan devam edebilirsiniz
Hiç yorum yok:
Yorum Gönder