WPF formundaki flash içeriğini barındırma ve WPF penceremde hala saydamlığı/alfa kullanmayı nasıl kullanabilirim? WinForms flash denetimlerini barındırma, buna izin vermez.Bir WPF uygulamasında Flash içeriğini nasıl barındırabilir ve şeffaflığı nasıl kullanabilirim?
cevap
Flash içeriğini görüntülemek için kullandığınız denetim WPF'de yerleşik değilse, bu "hava sahası" sorunlarına girersiniz. Win32'dan WinForms'a kadar her ekran teknolojisi HWND'leri "kaputun altında" kullandı ancak WPF DirectX'i kullanıyor. Ancak Windows'daki Pencere Yöneticisi, HWND'leri hala anlar, bu nedenle WPF uygulamaları bir üst düzey HWND tabanlı pencereye sahiptir ve bunun altındaki her şey DirectX'te yapılır (aslında içerik menüleri ve araç ipuçları gibi şeyler de üst düzey HWND'lere sahiptir) . Adam Nathan, this article numaralı telefondan WPF interopunun çok iyi bir açıklamasına sahiptir.
Flash içeriğini XAML'ye dönüştürmek için İfadeyi kullanabilir misiniz? Bunu yapan tarafın içinde veya dışında araçlar olduğuna inanıyorum.
Bunu yapmamasına rağmen, WPF 3.5 içinde Flash içeriğinizi sarmak için WPF 3.5 sp1'de bulunan WebBrowser denetimini kullanabilirsiniz. Şeffaflığın nasıl etkileneceğinden emin değilim.
Sadece nasıl görüntülenme sorunuyla aynı sorunla uğraşıyorsunuz & WPF'yi Flash görüntüleme yeteneği ile şeffaf hale getirin çünkü MainWindow "Saydamlığa izin ver" seçeneğini etkinleştirirseniz, uygulama çalıştıktan sonra Flash gösterilmez.
1) Flash (.swf) dosyalarını oynatmak için WebBrowser Control'ü kullandım. Bilgisayarımdaydılar, ancak internetten ya da nerede olursanız olun oynayabilirler. C# içinde almak için WebBrowser Kontrol ismini unutma. şeffaflık Şimdi
private void Window_Loaded(object sender, RoutedEventArgs e)
{
MyHelper.ExtendFrame(this, new Thickness(-1));
this.MyBrowser.Navigate(@"C:\Happy\Download\flash\PlayWithMEGame.swf");
}
2). WPF 'false' içinde "Saydamlığa İzin Ver" e ayarlıyorum ve "Pencere Stili" ni "Hiçbiri" olarak ayarladım.) (
public class MyHelper
{
public static bool ExtendFrame(Window window, Thickness margin)
{
IntPtr hwnd = new WindowInteropHelper(window).Handle;
window.Background = Brushes.Transparent;
HwndSource.FromHwnd(hwnd).CompositionTarget.BackgroundColor = Colors.Transparent;
MARGINS margins = new MARGINS(margin);
DwmExtendFrameIntoClientArea(hwnd, ref margins);
return true;
}
[DllImport("dwmapi.dll", PreserveSig = false)]
static extern void DwmExtendFrameIntoClientArea(IntPtr hwnd, ref MARGINS margins);
}
struct MARGINS
{
public MARGINS(Thickness t)
{
Left = (int)t.Left;
Right = (int)t.Right;
Top = (int)t.Top;
Bottom = (int)t.Bottom;
}
public int Left;
public int Right;
public int Top;
public int Bottom;
}
Ve Window_Loaded onu seslendi: Bundan sonra HERE ve HERE bilgi kullanılan ve MainWindow şeffaflığı sağlayan ve aynı zamanda Flaş çalışan istenen etkiyi üretilen bir aşağıdaki kodu oluşturduk, burada benim kodudur + Çalışmak için 'DllImport' için 'aşağıda' satırına ihtiyacınız var.
using System.Runtime.InteropServices;
using System.Windows.Interop;
- 1. nasıl bir WPF uygulamasında
- 2. WPF: Koddaki bir Paragrafın içeriğini nasıl ayarlayabilirim?
- 3. Web uygulamasında profili nasıl kullanabilirim
- 4. Bir Console uygulamasında System.Web.Caching.Cache'yi nasıl kullanabilirim?
- 5. HTML içeriğini bir Flash filmin üzerine nasıl yerleştiririm?
- 6. Flash uygulamasında çıkış düğmesi nasıl oluşturulur
- 7. Bir WPF uygulamasında appSettings nasıl güncellenir?
- 8. Dünyayı bir WPF Uygulamasında Kültürü nasıl kurabilirim?
- 9. WPF: WPF uygulamasında WPF TextBox
- 10. C# konsol uygulamasında CMD komutunu nasıl kullanabilirim?
- 11. EPS dosyaları bir WPF veya Silverlight uygulamasında nasıl kullanılır?
- 12. ActionScript 3.0 Flash IDE'deki ArrayCollection benzeri özelliği nasıl kullanabilirim?
- 13. Bir Silverlight uygulamasında flash içeriği ekleyebilir miyim?
- 14. Bir Windows Hizmetinde bir WCF Hizmetini barındırabilir (kendi kendini barındırabilir) ve http?
- 15. UINavigationController şeffaflığı?
- 16. WPF uygulamasında komut satırı argümanları nasıl kaydedilir?
- 17. android uygulamasında siyah tuşların arka planını siyahdan değiştir şeffaflığı
- 18. Flash nasıl çalışır?
- 19. Çok parçalı bir WPF uygulamasında değişen görüntüleri nasıl görüntülerim?
- 20. WPF uygulamasında bir Sayfa için kalıcı iletişim kutusunu nasıl yapabilirim?
- 21. Web Uygulamasında göreli bir yol kullanarak bir dosyanın içeriğini okuyun
- 22. Bir wpf uygulamasında Windows kapatma olayını yakala
- 23. Django uygulamasında yerel dosyaları okumak için göreli yolu nasıl kullanabilirim?
- 24. MVC uygulamasında Postmark'tan büyük JSON girdilerini nasıl kullanabilirim?
- 25. Bir HeaderedContentControl içeriğini nasıl genişletirim?
- 26. WPF: Bir ListBox öğesinde bir tıklamayla nasıl başa çıkabilirim? WPF uygulamasında
- 27. EndRequest'te Autofac'ı nasıl kullanabilirim?
- 28. .NET'te bir tarayıcıyı nasıl kullanabilirim?
- 29. Kalifiye bir yöntemi nasıl kullanabilirim?
- 30. Bir textarea'nın içeriğini bir görünümde test etmek için Rspec'i nasıl kullanabilirim?
Değeri için: Bunu denedim ve WebBrowser denetimi Flash içeriğini güzel bir şekilde barındırıyor, ancak yukarıda bahsedilen hava sahası kısıtlamalarını ihlal edemezsiniz. –