C# e librerie managed

di il
6 risposte

C# e librerie managed

Ciao a tutti, sono nuovo del forum e apprendista del linguaggio c#.
Sono uno studente che sta facendo la tesi ed ho una minima esperienza del linguaggio c++ e di Java ( in pratica li ho usati solo per gli esami che li richiedevano)
Ho acquistato la licenza Visual c# .NET e trovo il linguaggio veramente interessante ma partiamo col problema:
Per la tesi effettuo rilievi da un laser scanner, dati che poi ottengo tramite un file txt.
Per l'elaborazione ho trovato sulle librerie MSDN una utilissima classe: la Stroke.
Il problema è che non capisco quali direttive using usare per accedervi.
Scrivono che Stroke e Ink ( da cui Stroke deriva) fanno parte esclusivamente delle librerie Managed, ma come includerle nel progetto?
Spero che qualcuno riesca ad aiutarmi, altrimenti devo implementare delle routine per l'analisi con le curve di Bèzier ( leggero!) mentre Stroke ha dei metodi simpaticissimi che lo fanno per me!

"Could be worse" -"Perhaps?"
"Could be raining!"

6 Risposte

  • Re: C# e librerie managed

    Ho trovato sul menù Progetto la funzione aggiungi Riferimento, vorrei sapere ( visto che sembra funzionare) se qualcuno ha avuto esperienze precedenti e quindi può aiutarmi in questo campo

    "Could be worse" -"Perhaps?"
    "Could be raining!"
  • Re: C# e librerie managed

    In quale libreria si trova?
    Io non l'ho trovata.

    SuperCap



    (Le risposte che lascio sono limitate alle mie conoscenze sull'argomento trattato. Quindi potrei anche sbagliare!)
  • Re: C# e librerie managed

    Si trova nella libreria Microsoft.Ink che viaggia insieme ( ho scoperto ieri) all'SDK del Tablet PC.
    E' una libreria che contiene tutti quei tipi di dato e di metodi per il riconoscimento di scrittura tramite penna o mouse su una tavoletta grafica o su digitalizzatore.

    "Could be worse" -"Perhaps?"
    "Could be raining!"
  • Re: C# e librerie managed

    Ti può essere utile questo:

    This C# example demonstrates using the Stroke event handler to store a custom property in each stroke that contains a timestamp, by using the ExtendedProperties member. This sample started with a generated C# application and added a button and a list box to the main form. Each stroke drawn on the form stores a timestamp in its extended properties. When the button is pressed, the list box is filled with a list of the timestamps of the strokes.

    //...
    using Microsoft.Ink;

    namespace CS_StrokeEvent
    {
    public class Form1 : System.Windows.Forms.Form
    {
    private System.Windows.Forms.ListBox listBox1;
    private System.Windows.Forms.Button button1;

    //...

    // Add the following after Main() in the generated code.

    InkCollector myInkCollector;
    // This GUID constant will be used for the strokes'
    // timestamp extended property.
    Guid myTimeGuid = new Guid(10, 11, 12, 10, 0, 0, 0, 0, 0, 0, 0);

    private void Form1_Load(object sender, System.EventArgs e)
    {
    // Initialize the InkCollector with the form's
    // window handle, then enable it.
    myInkCollector = new InkCollector(Handle);
    myInkCollector.Enabled = true;
    // Add a handler for Stroke Events so we can record
    // an extended property with each one.
    myInkCollector.Stroke += new InkCollectorStrokeEventHandler(MyStrokeHandler);
    }

    public void MyStrokeHandler(object sender, InkCollectorStrokeEventArgs e)
    {
    // Write the current time into this stroke.
    // First get the time as a long.
    long theTime = DateTime.Now.ToFileTime();
    // Store the data under the Guid key.
    e.Stroke.ExtendedProperties.Add(myTimeGuid, theTime);
    }

    private void PopulateList()
    {
    //Clear the list before repopulating it.
    listBox1.Items.Clear();
    // Query the InkCollector's Ink for its strokes collection.
    Strokes theStrokes = myInkCollector.Ink.Strokes;
    foreach (Stroke theStroke in theStrokes)
    {
    // Test for the timestamp property on this stroke.
    if (theStroke.ExtendedProperties.DoesPropertyExist(myTimeGuid))
    {
    // Get the raw data out of this stroke's extended
    // properties list, using the previously defined
    // Guid as a key to the wanted extended property.
    long theLong = (long)theStroke.ExtendedProperties[myTimeGuid].Data;
    // Then turn it (as a FileTime) into a time string.
    string theTime = DateTime.FromFileTime(theLong).ToString();
    // Add the string to the listbox.
    listBox1.Items.Add(theTime);
    }
    }
    }

    private void button1_Click(object sender, System.EventArgs e)
    {
    PopulateList();
    }
    }
    }

    Lo trovi in MSDN Library (ms-help://MS.MSDNQTR.2003FEB.1040/tpcsdk10/html/reference/tbevtstroke.htm).

    Ciao.

    SuperCap



    (Le risposte che lascio sono limitate alle mie conoscenze sull'argomento trattato. Quindi potrei anche sbagliare!)
  • Re: C# e librerie managed

    Grazie per l'aiuto, sempre e comunque ben accetto.
    Sto proseguendo sull'esplorazione delle funzionalità di questa libreria.
    Per farti capire ti dico che più che usare eventi e delegati ( legati più che altro all'acquisizione dei dati da dispositivi, almeno nell'ambito della libreria) io uso solo la classe Stroke perchè mi permette di elaborare una serie di punti con metodi che comprendono le approssimazioni con Curve di Beziér, di ottenere le cuspidi di dette curve ( utilissimo nel mio caso) e tante cose simpatiche del genere.
    Dopotutto il lavoro di un programmatore ( o nel mio caso di un futuro Ing Informatico) è di creare, modificare o sfruttare i tipi di dato esistente per le proprie esigenze.
    Non trovi?

    "Could be worse" -"Perhaps?"
    "Could be raining!"
  • Re: C# e librerie managed

    Titus75 spero comunque che sia quello che ti serviva.
    Avevi chiesto:

    Il problema è che non capisco quali direttive using usare per accedervi.
    Scrivono che Stroke e Ink ( da cui Stroke deriva) fanno parte esclusivamente delle librerie Managed, ma come includerle nel progetto?

    Nel esempio riportato hai quale direttiva using usare che per quanto ho capito puoi utilizzare se hai l'SDK per Windows CE.
    L'SDK dovresti trovarlo nel sito della Microsoft al seguente indirizzo: http://www.microsoft.com/downloads/details.aspx?familyid=a08f6991-16b0-4019-a174- .
    Ciao.



    SuperCap



    (Le risposte che lascio sono limitate alle mie conoscenze sull'argomento trattato. Quindi potrei anche sbagliare!)
Devi accedere o registrarti per scrivere nel forum
6 risposte