folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Vlc.Dotnet Ve Mouseevent'ları Sorunu



Vlc.Dotnet Ve Mouseevent'ları Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nickalti
    Lightsaber
    Lightsaber's avatar
    Kayıt Tarihi: 29/Ağustos/2012
    Erkek

    bir up daha


    İnsan; insan olsaydı,insan olmazdı..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    sorunun anladığım kadarıyla hiyerarşi ile ilgili (parent-child)

    eklediğin butonu dinamik olarak ekle ve eventini dinamik şekilde ver eklemeden önce. muhtelemen eklediğin şey media elementinin önünü kapatıyor, o yüzden mouse hover v.s. çalışmıyor. yani bunlar aynı katmanda değiller sanırım.  Bunu öğrenmek için o katmanın parentindeki contolleri listele ve media elementinin ve o butonun aynı yerde olduğunu teyit et. Değillerse hem medya elementini hem de butonu dinamik olarak ekle


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nickalti
    Lightsaber
    Lightsaber's avatar
    Kayıt Tarihi: 29/Ağustos/2012
    Erkek
    unbalanced bunu yazdı

    sorunun anladığım kadarıyla hiyerarşi ile ilgili (parent-child)

    eklediğin butonu dinamik olarak ekle ve eventini dinamik şekilde ver eklemeden önce. muhtelemen eklediğin şey media elementinin önünü kapatıyor, o yüzden mouse hover v.s. çalışmıyor. yani bunlar aynı katmanda değiller sanırım.  Bunu öğrenmek için o katmanın parentindeki contolleri listele ve media elementinin ve o butonun aynı yerde olduğunu teyit et. Değillerse hem medya elementini hem de butonu dinamik olarak ekle

    ctor üstünden dinamik olarak eklediğimde player'ın  başlamasına gerek kalmadan gözükmüyor butonlar daha


    İnsan; insan olsaydı,insan olmazdı..
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    constructor da ekleyemezsin hocam, InitializeComponent ın çalışıp bitmesi lazım. sana göstermiştim windows loaded olayını hatırlarsan, oradan ekleyebilirsin


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nickalti
    Lightsaber
    Lightsaber's avatar
    Kayıt Tarihi: 29/Ağustos/2012
    Erkek
    unbalanced bunu yazdı

    constructor da ekleyemezsin hocam, InitializeComponent ın çalışıp bitmesi lazım. sana göstermiştim windows loaded olayını hatırlarsan, oradan ekleyebilirsin

    bir şey değiştirmedi hocam


    İnsan; insan olsaydı,insan olmazdı..
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    nasıl yaptığını bilmiyorum hocam ama şöyle yap adım adım ilerle.. yeni bir proje aç ve denemelerini orda yap.

    mesela önce butonu dinamik olarak ekle sonra media elementini ondan sonra tam tersini yap..

    ayrıca eklediğin yer neresi bilmiyorum ama bir panel koyup içine ekleteyebilirsin.. bu şekilde parent-child ilişkisi oluşturabilirsen (ikisi de aynı parente bağlı) o zaman sorun olmaz gibi. wpf biraz sıkıntılı, özellikle senin yaptığın tarzda :)  eskiden çok uğraştım wpf ile ama bıraktım artık.. böyle forumlarda çözüm zor bulursun. çünkü çözecek adamın uğraşması gerekiyor öyle tahmin yürütülerek çözülebilecek şey değil. O yüzden senin deneme yanılma yönetmiyle sorunları çözmeyi öğrenmek gerek.  Başka türlü çok yardım bekleme :) Zamanım olsa bağlanırım bilgisayarına uğraşırım çözerim ama bunun için her şeyi anlamak gerekiyor sonra da sorunu bulmak lazım, adım adım gitmek gerek v.s. İşte o yüzden bunları senin yapman lazım. Yeni bir proje aç orada denemelerini yap her zaman iyidir. Eğer saatlerdir uğraşıyorsan bir kaç saat ara ver, sonra dön. Çoğu zaman işe yarar

    kolay gelsin


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nickalti
    Lightsaber
    Lightsaber's avatar
    Kayıt Tarihi: 29/Ağustos/2012
    Erkek
    unbalanced bunu yazdı

    nasıl yaptığını bilmiyorum hocam ama şöyle yap adım adım ilerle.. yeni bir proje aç ve denemelerini orda yap.

    mesela önce butonu dinamik olarak ekle sonra media elementini ondan sonra tam tersini yap..

    ayrıca eklediğin yer neresi bilmiyorum ama bir panel koyup içine ekleteyebilirsin.. bu şekilde parent-child ilişkisi oluşturabilirsen (ikisi de aynı parente bağlı) o zaman sorun olmaz gibi. wpf biraz sıkıntılı, özellikle senin yaptığın tarzda :)  eskiden çok uğraştım wpf ile ama bıraktım artık.. böyle forumlarda çözüm zor bulursun. çünkü çözecek adamın uğraşması gerekiyor öyle tahmin yürütülerek çözülebilecek şey değil. O yüzden senin deneme yanılma yönetmiyle sorunları çözmeyi öğrenmek gerek.  Başka türlü çok yardım bekleme :) Zamanım olsa bağlanırım bilgisayarına uğraşırım çözerim ama bunun için her şeyi anlamak gerekiyor sonra da sorunu bulmak lazım, adım adım gitmek gerek v.s. İşte o yüzden bunları senin yapman lazım. Yeni bir proje aç orada denemelerini yap her zaman iyidir. Eğer saatlerdir uğraşıyorsan bir kaç saat ara ver, sonra dön. Çoğu zaman işe yarar

    kolay gelsin

     şöyle ki kontrol ettiğimde zaten hepsinin parenti grid, muhtemelen daha önce linkini verdiğim Win32Interops'un SetParent methoduyla alakalı ama tam işlevini de çözebilmiş değilim.

    Genel olarak bu kütüphanede hep wpf de sıkıntı çıkarmış başkalarına da. Elbet bir şekilde çözeceğiz de bakalım :) Teşekkürler hocam


    İnsan; insan olsaydı,insan olmazdı..
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    setparent düşük seviye bir işlemdir, HwndHost buradaki sınıfı bulabilirsen user32.dll nin import edildiğini görebilirsin. 

    Win32Interops.SetParent(MediaPlayer.Handle, hwndParent.Handle);

     

    yukarıdaki kodun mantığı basit, şimdi her şeyi bir hiyerarşik yapı içinde düşün. Bir sürü nesne olabilir ve her nesnenin parenti ve childleri olabilir. Bu üstteki metod ise verilen handle numalarına göre parente yeni bir child set ediyor. yani hwndparent ne ise (muhtemelen formun ya da grid in handle numarası), ona mediaplayer i child olarak set ediyor. 

    Böylelikle findwindow ve findwindowex ile görebileceğin child-parent ilişkisini kuruyor. Bunun için visual studio ile gelen spy++ ile bakabilirsin. Öncelikle parent denilen (muhtemelen form) kontrolün handle numarasını gör, ve sonra child (mediaplayer) ın handle numarasını al bak..  

    Eğer 

    Win32Interops.SetParent(MediaPlayer.Handle, hwndParent.Handle); burada verilen değerler ile tutuyorsa child-parent olayını doğru şekilde yapmışsın demektir.

    Ama şu var, hemen onun altında

      return new HandleRef(this, MediaPlayer.Handle); 

    bu satır mevcut. Tam olarak bilmiyorum ama anladığım kadarıyla chlid olarak set edilmiş öğe olan mediaplayer in handle adresi değişmiş bunu sisteme bildiriyor. Onu anlamak için de bu noktaya break point koyup dönen değere bak, gerçekten mediaplayer.handle ın numarası ile farklı mı değil mi diye..

    daha yazılacak çok şey var ama bunla ilintili değiller.  Sadece test etmen için söyledim. Parent-child ilişkisi kurup kuramadığını kontrol et ve dediğim gibi ayrı bir proje oluştur yap hocam. Sadece lazım olanları koy fazlasını koyma. bu şekilde net olarak ne olup ne bittiğini görürsün

    kolay gelsin

     

     


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
Toplam Hit: 2473 Toplam Mesaj: 19