Úsečka v PictureBoxu a její pohyb   otázka

VB.NET

Prosím o pomoc. Dokážu nakreslit do pictureboxu úsečku:

Private Sub picCapture_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles picCapture.Paint
        Dim p As New Pen(Color.Blue, 1)
        e.Graphics.DrawLine(p, 20, posunY, 250, posunY)
End Sub

jenže bych potřeboval mít na formuláři 2 Buttony (nahoru a dolů) a stisknutím příslušného ovládacího prvku úsečku posouvat nahoru nebo dolů. Nemůžu přijít na to jak to udělat, nebo jak tu úsečku adresovat, abych ji mohl ovládat.

Další možností by bylo úsečku uchopit myší a táhnout kam je potřeba.

Poradí někdo jak na to? nebo co konkrétně hledat abych si to mohl nastudovat?

Děkuji

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Použil jsem prvek lineshape, to bych ovládat dokázal, ale zase picture box jej "zakryje" (linka je na pictureboxu neviditelná). Potřebuju aby by byl pod linkou zachycený obrázek a "na něm" se pohybovala.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Pokud chcete nakreslit nějaký objekt a manipulovat s ním pomocí myši, bude to v GDI+ (Windows Forms) docela komplikované. Vše nakreslené pomocí GDI+ je pouhý obrázek a musíte si někde ručně pamatovat všechny souřadnice, rozměry a pak s tím komplikovaně pracovat ručně. Ve WPF je nadruhou stranu všechno nakreslené objekt, k němuž máte vždy přístup a můžete lehce měnit jeho vlastnosti. Doporučoval bych ponechat vaši stávající Windows Forms aplikaci a do ní vložit Element Host, což je komponenta pro hostování WPF grafiky ve Windows Forms.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Našel jsem si nějaké odkazy ohledně WPF, pokusím se tím prokousat. Nicméně pokud by šlo o pohyb čáry nad pictureboxem s obrázkem pomocí vedle umístěných tlačítek, to by šlo nějak rozumně udělat...?

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Např:

Je to sice v C#, ale s tím si asi poradíte.

http://blog.csharphelper.com/2010/06/12/...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Než se pustím do WPF, zeptám se.

Posun prvku lineshape nahoru a dolů mi funguje, nicméně je vidět pouza na formuláři. Všechny další prvky na formuláři (včetně pictureboxu) jsou "nad" linkou a zastiňují ji.

Je nějak nastavit, aby byl lineshape nad všemi prvky na formuláři? To by mi problém vyřešilo...

Děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak jsem to vyřešil tak jednoduše, že se až stydím. Nastavil jsem parametry:

picCapture.SendToBack()
LineShape1.BringToFront()

při každém posunu linky udělám refresh pictureboxu a je to.

picCapture.Refresh()

Děkuji, takhle mi to stačí a omlouvám se za prudu :-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback