MultiSlot Klembord (7 / 9 stap)

Stap 7: Repliceren de UI

Tot nu toe gemaakt wij sommige velden om de gegevens te bewaren en enkele methoden om te

initialiseren van de gegevensstructuur en krijgen de geselecteerde tekst. Nu moeten we de gebruikersinterface om aan te tonen van vijf sets van het sjabloon raster dynamisch maken.

We moeten de vijf rasters op een array opslaan zodat we toegang heeft tot het raster met behulp van een index binnen van het besturingselement gebeurtenissen. Voor het opslaan van de dynamisch gemaakte rasters die we moeten maken van de aGroupGrids matrix als privé gebied van de MijnBesturingselement klasse. Het gegevenstype van deze matrix is raster (System.Windows.Controls.Grid) en maximum aantal elementen is opgeslagen op de constante MAX_SLOTS.

privé raster [] aGroupGrids = nieuwe Grid [MAX_SLOTS];

Voordat we de array van rasters initialiseren die we moeten maken van een methode om te clonen van de bestaande grid grdTemplate die we op stap 3 hebt gemaakt. Helaas, het .NET framework beschikt niet over een ingebouwde functie om een kloon van een UI-besturingselement, dus we moeten creëren onze eigen. Daarom moeten we de methode van de CloneControls() zoals blijkt uit balg maken.

privé raster CloneControls(Grid myGrid)

{

gridXaml koord = XamlWriter.Save(myGrid);

StringReader stringReader = nieuwe StringReader(gridXaml);

XmlReader (Engels) XmlReader (Engels) = XmlReader.Create(stringReader);

Raster newGrid = (Grid)XamlReader.Load(xmlReader);

Return newGrid;

}

De CloneControls()-methode ontvangen een Grid-object als parameter en retourneert een ander raster object, dat een kloon van de parameter is. Binnen deze methode gebruiken we de klassen die serialize objecten op de XML-indeling om alle eigenschappen, waarden en andere elementen die in het besturingselement zijn opgeslagen. De volgende link bevat een goede uitleg over XML-serialisatie met de klassen van het XamlWriter en XmlReader (Engels) in .NET Framework 4.0.

http://blogs.MSDN.com/b/bursteg/Archive/2009/05/18/XAML-in-net-4-0-serialization-and-deserialization-using-xamlservices.aspx

Nu dat we de aGroupGrids array om de dynamische gecreëerd controles en de CloneControls()-methode hebben om een kloon van de objecten van de grid we moeten voor het initialiseren van de elementen te slaan, dat wil zeggen ze te maken. Wij zullen dat doen binnen een nieuwe methode genaamd InitializeInteface(). Deze methode moet worden aangeroepen binnen de constructor van de MijnBesturingselement net na de oproep van de InitializeClipboard(). De constructor van de klasse MijnBesturingselement moet er zo uitzien:

openbare MyControl()

{

InitializeComponent();

Toevoegen van de lege slots

IntilializeClipBoard();

Initilizae de interface

InitializeInterface();

}

Binnen de InitializeInterface() moeten we de volgende taken:

· Verbergen van de grdTemplateGrid;

· Voor elke nieuwe sleuf kloon het grdTemplateGrid raster:

o invoegen het nieuwe gekloonde raster op de aGroupGrid array.

o instellen de zichtbaarheid voor het nieuwe gekloonde raster.

o Stel de positie van de gekloonde raster aan een nieuwe marge zodat de rasters niet visueel overlappen.

o wijziging het bijschrift van het label welke raster tonen komen overeen met elke sleuf.

o instellen de Tag-eigenschap van de controles en de ListView voor het opslaan van de index van de gekloonde raster.

o stelt de gemachtigde methoden op de gebeurtenis klikken van de knoppen. Stel ook de methode van de gemachtigde aan de tweemaal klikken-gebeurtenis van de ListView.

o het nieuwe gekloonde raster aan de container raster grdMain toevoegen.

De volledige code voor de methode InitializeInterface() wordt hieronder weergegeven:

private void InitializeInterface()

{

Dubbele left_initial =-170;

this.grdTemplate.Visibility = Visibility.Hidden;

for (int i = 0; ik < MAX_SLOTS; i ++)

{

aGroupGrids [i] = CloneControls(this.grdTemplate);

aGroupGrids [i]. Zichtbaarheid = Visibility.Visible;

left_initial = left_initial + 180,0;

aGroupGrids [i]. Marge = nieuwe System.Windows.Thickness (left_initial,-5.0, 0.0, 0.0);

Wilt wijzigen van het label Slot + de gebeurtenissen aan de knoppen en de lijst toevoegen

Volgorde van elementen

0 -> knop plakken

1 -> knop kopiëren

2 -> ListView

3 -> etiketten

4 -> knop Knippen

aGroupGrids [i]. Label = i;

Instellen van de Label bijschrift

((Label) aGroupGrids [i]. Children[3]). Inhoud = "Slot" + (i + 1). ToString();

Stel de eigenschappen van de Tags met de index van het raster in de matrix

Dit gaat nuttig zijn laatste op (van de gebeurtenissen)

Knop plakken = ((knop) aGroupGrids [i]. Children[0]);

Knop kopie = ((knop) aGroupGrids [i]. Children[1]);

Knop Knippen = ((knop) aGroupGrids [i]. Children[4]);

ListView lstData = ((ListView) aGroupGrids [i]. Children[2]);

Paste.Tag = i;

Copy.Tag = i;

Cut.Tag = i;

lstData.Tag = i;

Instellen van de knoppen gebeurtenissen (klik)

Copy.Click += Copy_Click;

Paste.Click += Paste_Click;

Cut.Click += Cut_Click;

Stel de ListView-gebeurtenis (MouseDoubleClick)

lstData.MouseDoubleClick += lstData_MouseDoubleClick;

Dit raster toevoegen aan de bovenliggende raster

grdMain.Children.Add(aGroupGrids[i]);

}

}

Hoe alles wat we moeten doen is Vul de gemachtigde methoden voor de knoppen (Copy_Click, Pastle_Click, Cut_Click) en de methode voor de dubbele klik op de ListView (lstData_MouseDoubleClick), die zal laten zien een eenvoudige MessageBox met de inhoud van het geselecteerde item.

Gerelateerde Artikelen

Smartphone Klembord

Smartphone Klembord

Smartphones zijn fantastische voor vele toepassingen naast het is voornamelijk gebruikt als een telefoon. Als student bij een lezing, met vrijwel geen ruimte voor uw telefoon, werkt deze Klembord fantastisch! Met alle grote apps beschikbaar is de Sma
Klembord mededeling PC ↔ Pi met Python

Klembord mededeling PC ↔ Pi met Python

Normaal gebruik ik mijn Raspberry-Pi op een gedeelde bureaublad van windows. Ik deel ook een netwerkstation met de Pi. Dit is geweldig, maar ik heb nog steeds de ergernis van het Klembord op de PC niet wordt weergegeven op de Pi. Al zou het leuker om
Muis val Klembord

Muis val Klembord

Maak een volledig goedkoop Klembord vrijwel overal met deze slimme muis val Klembord. Grijpen sommige muis vallen, Tangen en een oscillerende tool (ik gebruikte een Dremel multi Max) met een flush geslepen mes.Stap 1: Ontvang uw suppliesIk pakte een
Carbon Fiber Klembord

Carbon Fiber Klembord

ik werk voor een bedrijf dat samengestelde maakt voor de luchtvaartindustrie delen.  Elke zo vaak tegenkomen ik laminaten gemaakt van koolstofvezel of glasvezel.  Ik voelde me alsof het een schande dat deze stukken gaan naar afval, dus begon ik op zo
Hoe maak je een mini Klembord

Hoe maak je een mini Klembord

dit is een zakje spanwijdte Klembord weinig om notities te maken op.Stap 1: levert. u nodig heeft,2 wasmachines, 1 bout,1 bout,1 pakje van post-it notities,1 stuk van een tegel laminaaten 1 mini clip.Stap 2: het samen te brengen Neem nu uw tegel. Zet
Klembord pennenhouder

Klembord pennenhouder

uw klembord met een functionele pennenhouder aanpassen.   Dit is snel, goedkoop en gemakkelijk!  Het resultaat is zeer effectief.  Ik gebruik de mijne dagelijks.Stap 1: Wat u nodig hebt. (Ik blijf denken INXS) Zoals met veel van mijn instructables, d
WERELDS MAKKELIJKSTE KUNST KLEMBORD!!!

WERELDS MAKKELIJKSTE KUNST KLEMBORD!!!

Als een frequente lade, ik met behulp van 9 "x 12" papier krijg ik van mijn lokale drukkerij. Het enige probleem is dat de vellen niet passen alle klemborden voor portabiliteit...... behalve dit één heb ik zelf gemaakt.Voor hulpmiddelen die u op
Klembord snel n' gemakkelijk

Klembord snel n' gemakkelijk

Een paar minuten geleden besloten heb ik dat ik een snelle schema van mijn nieuwste circuit ontwerp moeten trekken. Ik dacht: "Goh, ik wou dat ik had een Klembord om te zetten van een vel papier typen op, zodat ik dit met een zekere mate van stabilit
Sugru pennenhouder (voor klembord)

Sugru pennenhouder (voor klembord)

U moet:een KlembordSugrueen penStap 1: Verdelen van de Sugru, bepalen van plaatsing We vier stukken, gebruikt voor het plaatsen van boven en onder de pen op vier plekken. U kunt waarschijnlijk twee grote stukken, of drie kleintjes... Wat best aanslui
InstaMorph A Klembord!

InstaMorph A Klembord!

Hallo mensen!De Omaha Maker Groep is terug met een andere grote Instructable, ditmaal als onderdeel van de April bouwen nacht met InstaMorph!Voor dit project had een van onze leden een Opslag Klembord die hij gebruikt voor het maken van notities in h
Klembord voor links overhandigde mensen

Klembord voor links overhandigde mensen

als u linkshandig bent, weet je hoe moeilijk het is om op een klembord te schrijven. De clip, zelfs op een laag profiel Klembord zoals die hier is afgebeeld, is voortdurend in de weg van uw hand.Stap 1: Een mogelijkheid Is het bijna onmogelijk om te
KLEMBORD, 2013 SKO TRENDER PA NEWPORT BANAN

KLEMBORD, 2013 SKO TRENDER PA NEWPORT BANAN

Klembord, newport wereldgroep runwayhttp://Clipboard.com/clip/LQN4RJQ30eF8cNGwzRJteEltid4oOWztZRme2013 ik skor är olika ontwerpers önskan att använda endast de bästa Materials. För de vackra werd välklippta, förblir 2013 engagerad ik naturliga materi
Het Klembord

Het Klembord

Als onderdeel van mijn eeuwige zoektocht te organiseren elk aspect van mijn sterfelijke bestaan, besloten heb ik dat ik had behoefte aan een systeem voor het bijhouden van de voortgang van de orders van de klant in de werkplaats. Mijn geheugen heeft
Keltische knoop Macrame armband

Keltische knoop Macrame armband

Een geweldig cadeau (of voor je!), unisex, en gemakkelijk te maken in het proces-verbaal - hier is hoe te maken van een Keltische knoop armband!Deze armband is macramé, en gebruikt een van de meest populaire soorten van de "Keltische knopen" (he