欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決WPF中空域問(wèn)題(Airspace issuse)

 更新時(shí)間:2017年04月11日 14:31:14   作者:零頁(yè)  
空域問(wèn)題是由于Winform與WPF在底層渲染機(jī)制上有所區(qū)別而導(dǎo)致的。下面小編給大家分享解決WPF中空域問(wèn)題(Airspace issuse),需要的朋友參考下吧

空域問(wèn)題是由于Winform與WPF在底層渲染機(jī)制上有所區(qū)別而導(dǎo)致的。多數(shù)情況下,開(kāi)發(fā)者為了實(shí)現(xiàn)不規(guī)則的窗體并承載Winform控件時(shí),遇到此類(lèi)問(wèn)題。當(dāng)WPF窗體設(shè)置為允許透明(也就是AllowsTransparency=True)時(shí),Winform Control 會(huì)出現(xiàn)不顯示等情況,為了避免此問(wèn)題,許多UI框架在實(shí)現(xiàn)不規(guī)則窗體時(shí),用Win32 API 去實(shí)現(xiàn)不規(guī)則窗體的一些特效,比如透明,圓角等,這樣WPF窗口的AllowsTransparency屬性就可以設(shè)為FALSE,從而繞過(guò)了空域問(wèn)題。但對(duì)于沒(méi)有接觸過(guò)Window底層開(kāi)發(fā)的同學(xué)開(kāi)發(fā)成本會(huì)比較高,而且有些特殊情況下,必須設(shè)AllowsTransparency為T(mén)rue時(shí),該如何解決?

  • 第一種也是網(wǎng)絡(luò)上最普遍的方法,簡(jiǎn)單說(shuō)就是內(nèi)嵌窗體,這個(gè)方法就不再說(shuō)明。
  • 第二種也是我解決此問(wèn)題的方法,使用第三方庫(kù)解決空域的問(wèn)題

利用第三方庫(kù)解決空域問(wèn)題

Microsoft.DwayneNeed(
https://microsoftdwayneneed.codeplex.com/
),這個(gè)庫(kù)在其項(xiàng)目介紹里也寫(xiě)到

Mitigating "airspace" issues in WPF applications.

可能看出這個(gè)庫(kù)也不能完美的解決空域的問(wèn)題,也只能等微軟去完善此問(wèn)題了。

以Winform中強(qiáng)大的WebBrower為例,簡(jiǎn)單說(shuō)一下使用方法:

  • 新建WPF窗體項(xiàng)目并添加Microsoft.DwayneNeed.dll與Microsoft.DwayneNeed.Win32.dll的引用
  • 添加 xmlns:airspace="clr-namespace:Microsoft.DwayneNeed.Interop;assembly=Microsoft.DwayneNeed"的聲明
<airspace:AirspaceDecorator AirspaceMode="Redirect" IsInputRedirectionEnabled="True" IsOutputRedirectionEnabled="True">
    <WindowsFormsHost Name="FormsHost">
      <winform:WebBrowser/>
    </WindowsFormsHost>
</airspace:AirspaceDecorator>

以上所述是小編給大家介紹的解決WPF中空域問(wèn)題(Airspace issuse),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論