Thursday, September 12, 2013

Penjabaran pen touch

Assalamualaikum,,

Pada malam kali ini saya akan membahas mengenai touch pen yang ada pada form peserta , kita bahas fungsinya beserta koding / sintak nya kayak gimana . oke pada touch ini terdapat beberapa fungsi yaitu diantaranya :

  • Save Ink
  • Save Ink as a bitmap
  • Load Ink
  • Cut Ink
  • Copy Ink
  • Paste Ink
  • Delete Ink
  • Select Ink
  • Format Ink
  • Stylus Color
  • Change stylus type
  • Change pen

Pada menu save ini , berfungsi untuk mengsave hasil dari gambar yang sudah kita buat dan dengan ekstensi .bmp .

int marg = int.Parse(this.inkCanv.Margin.Left.ToString());
RenderTargetBitmap rtb = 
        new RenderTargetBitmap((int)this.inkCanv.ActualWidth - marg,
                (int)this.inkCanv.ActualHeight - marg, 0, 0, 
            PixelFormats.Default);
rtb.Render(this.inkCanv);
BmpBitmapEncoder encoder = new BmpBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));
encoder.Save(file);
file.Close();


Pada menu open ini berfungsi untuk membuka gambar dari luar aplikasi , dan dalam bentuk ekstensi .jpg .bmp .

this.inkCanv.Strokes = new StrokeCollection(file);


Sesua dengan namanya yaitu NEW , fungsi ini untuk mengganti lembar dengan yang baru.

this.inkCanv.Strokes.Clear();


Pada fungsi cut ini fungsinya yaitu memotong obyek yag telah di seleksi.

if (this.inkCanv.GetSelectedStrokes().Count > 0)
    this.inkCanv.CutSelection();


Fungsi ini yaitu untuk mengcopy obyek yang telah di seleksi.

if (this.inkCanv.GetSelectedStrokes().Count > 0)
    this.inkCanv.CopySelection();


Fungsi ini adalah untuk menempelkan hasil copy an pada tempat yang kita inginkan.

if (this.inkCanv.CanPaste())
    this.inkCanv.Paste();


Fungsi ini untuk menghapus obyek

if (this.inkCanv.GetSelectedStrokes().Count > 0)
{
    foreach (Stroke strk in this.inkCanv.GetSelectedStrokes())
        this.inkCanv.Strokes.Remove(strk);
}


Fungsinya yaitu untuk menyeleksi obyek

this.inkCanv.Select(this.inkCanv.Strokes);


Fungsi ini yaitu untuk memformat semua obyek yang di seleksi.

StylusSettings dlg = new StylusSettings();
dlg.Owner = this;

// Try getting the DrawingAttributes of the first selected stroke.
StrokeCollection strokes = this.inkCanv.GetSelectedStrokes();

if (strokes.Count > 0)
    dlg.DrawingAttributes = strokes[0].DrawingAttributes;
else
    dlg.DrawingAttributes = this.inkCanv.DefaultDrawingAttributes;

if ((bool)dlg.ShowDialog().GetValueOrDefault())
{
    // Set the DrawingAttributes of all the selected strokes.
    foreach (Stroke strk in strokes)
        strk.DrawingAttributes = dlg.DrawingAttributes;
}


private void createGridOfColor()
{
    PropertyInfo[] props = typeof(Brushes).GetProperties(BindingFlags.Public |
                                          BindingFlags.Static);
    // Create individual items
    foreach (PropertyInfo p in props)
    {
        Button b = new Button();
        b.Background = (SolidColorBrush)p.GetValue(null, null);
        b.Foreground = Brushes.Transparent;
        b.BorderBrush=Brushes.Transparent;
        b.Click += new RoutedEventHandler(b_Click);
        this.ugColors.Children.Add(b);
    }
}


Fungsinya disini yaitu untuk mengembalikan kursor , menghapus , menghapus per obyek dan menyeleksi.

public DrawingAttributes DrawingAttributes
{
    set
    {
        chkPressure.IsChecked = value.IgnorePressure;
        chkHighlight.IsChecked = value.IsHighlighter;
        penWidth = value.Width;
        penHeight = value.Height;
        currColor = value.Color;
    }
    get
    {
        DrawingAttributes drawattr = new DrawingAttributes();
        drawattr.IgnorePressure = (bool)chkPressure.IsChecked;
        drawattr.Width=penWidth;
        drawattr.Height = penHeight;
        drawattr.IsHighlighter = (bool)chkHighlight.IsChecked;
        drawattr.Color = currColor;
        return drawattr;
    }
}

Sekian...

No comments:

Post a Comment