2012-04-02 26 views
10

System.Windows.Clipboard ve System.Windows.Forms.Clipboard arasında bir fark var mı?System.Windows.Clipboard ve System.Windows.Forms.Clipboard arasında bir fark var mı?

System.Windows.Forms sürümü belgelerine özellikle, bir nesneyi panoya depolamak için seri hale getirilebilmesi ve uygulamanızın STA modeline sahip olması gerektiğini, ancak System.Windows sürümünün belgelerine sahip olmadığını belirtir. t gereklilik olarak listelenir. Bu mu? Neden iki sınıf var? Fark ne? durumda

bizim app WPF ve evet ben eski WPF ve Windows.Forms için ikincisi için olduğunu biliyorum ... ama neden, önemli? Neden sadece bir referans olduğunu ve kullanımında daha az kısıtlayıcı olduğunu göz önünde bulundurarak form tabanlı uygulamalarla bile System.Windows sürümünü her zaman kullanmıyorsunuz ve bir nesne yalnızca .NET'teki bir nesnedir.

+0

Şu andaki zamanın başlangıcından beri System.Windows.Clipboard'u kullanan WinForms kodumuz var. System.Windows.Forms.Clipboard'a geçmek sorunu çözdü. NİYE YA? –

cevap

5

Basit: System.Windows.Clipboard (PresentationCore.dll içinde) WPF ile birlikte kullanılmak üzere tasarlanmıştır, System.Windows.Forms.Clipboard (in System.Windows.Forms.dll) Windows Forms içindir.

Genellikle her iki derlemelerdeki benzer sınıflara rastlarsınız; Bunun nedeni, WPF ve WinForms'un, birçok çerçeve API'sinin farklı şekilde uygulanması gereken yeteri kadar farklı sistemlere dayanmasıdır. Sistem panosuyla gerçekten çalışmamıştım, ama benim tahminim, WinForms'un düşük düzeyli Win32 API'lerine nispi yakınlığı ile ilgili bir şey olması. Yine de emin olmazdım.

WPF ile çalıştığınızdan, görünüşe göre uygulama WFF için WinForms için farklı olduğundan, System.Windows.Clipboard kullanmalısınız. System.Windows.Forms ad Formlar (eski tarz) hakkında öğeleri içerir iken

+1

Evet, onları kendi platformlarında kullanmanız gerektiğini biliyorum, ancak bu farkı açıklamıyor ve neden bir tarafın bir kısıtlaması var, diğeri ise aynı COM tabanlı konuşuyor. pano. Merak ettiğim bu. Örneğin, System.Windows sürümü çok daha az kısıtlayıcı olduğu için, Windows Forms uygulaması bunu neden kullanmıyor? – MarqueIV

+0

Bundan daha fazla bir cevabın olacağını düşünmüyorum, böylece seninkini kabul edeceğim. Yine de, seri hale getirme sorunuyla ilgili olarak, dokümanlarda bir hata olup olmadığını bilmiyorum veya WPF sürümündeki verilerin seri hale getirilemeyen bir sürümünü kullanmanıza izin veriliyor. – MarqueIV

0

System.Windows ad, WPF (Windows GUI oluşturma yeni yolu) hakkındadır.

+0

Yukarıdaki yorumları @BoltClock'a bakın, ancak kısaca, farkı açıklamıyor. Bu kullanımı açıklıyor. – MarqueIV

+0

Sanırım fark, WPF'nin doğrudan UI için DirectX ile çalıştığı, Formlar ise GDI + kullanıyor olmasıdır. Bu yüzden WPF, GPU ve diğer bileşenlerle çalışmak için birden fazla iş parçacığı kullanıyor olabilir. –

+1

Ancak, panodaki kullanıcı arayüzüyle hiçbir ilgisi yok. Sahnelerin arkasındaki veriler, bu yüzden bununla ilgili hiçbir şey önemli değil. – MarqueIV

İlgili konular