One piece of feedback we’ve heard loud and clear is that you want layered windows. Well, I’m happy to announce that based on your feedback, we now plan to officially support layered windows in WPF 1.0, coming to a future CTP near you (not necessarily the next CTP, though, it will be the next CTP with major WPF changes).
The details: HwndSource (or more accurately, HwndSourceParameters) will have a constructor parameter for UsesPerPixelOpacity. Setting this to true will enable layered windows w/ a per-pixel alpha channel. Window will behave the same as today — UsesPerPixelOpacity=false, but Popup change to UsesPerPixelOpacity=true. UsesPerPixelOpacity=true has a couple implications:
- All rendering for that hwnd will be done in software (no hardware acceleration)
- We won’t draw a window frame (no WS_CAPTION)
- Transparent pixels will not be hit test or get mouse input
- HwndHost is not supported inside a UsesPerPixelOpacity=true container
The last three stem directly from Win32k.sys’s layered windows behavior. In terms of hardware acceleration, we’re still trying to work out what’s possible on various platforms with reasonable performance & reliability, but didn’t want to block all progress on that investigation.
Standard disclaimer — all product plans are subject to change, this is not a guarantee, etc. etc.