Kezdőlap > .NET, Windows Presentation Foundation > WPF és a Windows Forms kontrolok használata

WPF és a Windows Forms kontrolok használata

2010. január 2. szombat Hozzászólás Go to comments

A forrás fájl innen tölthető le.

Az alkalmazás elkészítését megnézhetitek az alábbi videóban.

http://silverlight.services.live.com/invoke/64427/WindowsForms%c3%a9saWPF/iframe.html

A következő tutorialban egy saját Remote Desktop klienst fogunk elkészíteni WPF-ben és felhasználunk egy „régi” ActiveX –es Terminal Service kontrolt. Hogy véletlenül se írjunk rossz helyre kódokat, ezért minden általunk írt kódsor előtt van egy megjegyzés, amely mutatja, hogy hova kell az aktuális kódsort írnunk.

Az alapvető felhasználói felület előre el van készítve, hogy ezzel se teljen az idő. Egy ribbon kontrolban van egy textbox amely a távoli gép IP címét vagy nevét adhatjuk meg. Ezen kívül van még 2 gomb, az egyik a kapcsolódásért, a másik pedig a kapcsolat megszüntetésért lesz felelős. A DEMO nincs ellátva semmilyen védelemmel, így ha rosszul adjuk meg a távoli gép címét, vagy egyéb hibát okozunk, kivételt fog dobni a program.clip_image009

Nyissuk meg a feladathoz mellékelt solutiont. Látható, hogy az ablak egy előre elkészített Ribbon kontrolból áll.

 Első lépésként adjunk, a projektünkhöz a System.Windows.Forms.Intergation névteret. A Solution Explorerben kattintsunk jobb egérgombbal a Refereces-re, és válasszuk, ki az Add Reference menüpontot, majd a .NET fülön válasszuk ki a WindowsFormsIntegration –t (majdnem a legalsó elem) és kattintsunk az Ok gombra.

clip_image011 (Azért, hogy az ActiveX-es Interoppal most foglalkozzunk, a projekt binDebug mappájában ott van az AxInterop.MSTSCLib illetve Interop.MSTSCLib DLL-ek . Ezek szintén előre hozzá vannak adva a referenciákhoz. )

Menjünk a XAML nézetben közvetlen a ribbon kontrol alá, és adjuk hozzá a következő elementet. //Task -1

<WindowsFormsHost Name="windowsFormsHost1">

</WindowsFormsHost>

Itt adtuk az ablakunkhoz egy WindowsFormsHost kontrolt. Ennek a kontrolnak a segítségével tudunk Windows Forms vagy régebbi COM kontrolokat elhelyezni WPF alkalmazásunkba.  Írjuk a WindowsFormsHost elementek közé az alábbi sort.

<rdp:AxMsTscAxNotSafeForScripting x:Name="rdpConnector" />

Itt egy Microsoft Terminal Service kontrolt helyeztünk el a WPF –es alkalmazásunkba, amelynek a neve az rdpConnector lett. Ezzel a névvel fogunk a kódból hivatkozni erre a kontrolra.

Navigáljunk el a MainWindow.xaml.cs fájlba és itt keressük meg a Connected_Executed eseményt, majd adjuk hozzá az alábbi kódsorokat. //Task -2

rdpConnector.Server = txtServerName.Text;
rdpConnector.Connect();
windowsFormsHost1.Focus();  

Itt megadtuk az rdpConnector számára, hogy mi a célgép (szerver) elérhetősége, majd pedig meghívjuk a Connect metódusát, és rögtön kapcsolódhatunk is a távoli géphez. Meg kell hívnunk a winodwsFormsHost Focus metódusát is, mert különben nem tudunk majd a távoli asztalon kattintani. (Próbáljátok majd ki nélküle is)

Ha ezzel megvagyunk, navigáljunk el, a Disconnected_Executed eseményhez, ott pedig írjuk be az alábbi kódsort. Amelynek, a segítségével az aktuális kapcsolatot lezárhatjuk. //Task -3

rdpConnector.Disconnect();

Miután ezzel is megvagyunk nincs más dolgunk mint használatba venni a programot. Fordítsuk le és indítsuk el. (F5) Írjuk az Ip Address mezőbe egy létező gép IP címét vagy hálózati nevét, és kattintsunk az Connect gombra.

 clip_image013

Ekkor, ha mindent jól csináltunk, és van távoli gépünk aminek elérhetjük a Remote Desktop szolgáltatását akkor egy login képernyő fog fogadni minket. Ha ezen is bejelentkezünk akkor a távoli gép asztala fogad minket, és így távolról irányíthatjuk az adott gépet.

Ahhoz, hogy kapcsolódj egy távoli gépre. A távoli gépen engedélyezni kell, a távoli asztali kapcsolatszolgáltatás. Ezen beállításokhoz, az alábbi linken találsz információkat. http://www.microsoft.com/windowsxp/using/networking/expert/northrup_03may16.mspx
Windows Vistán illetve Windows7 en is hasonlóan kell elvégezni.

Reklámok
  1. Még nincs hozzászólás.
  1. No trackbacks yet.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s

%d blogger ezt kedveli: