Согласен, это жестко:
private void VerifyConsistencyWithAllowsTransparency(WindowStyle style)
{
if (AllowsTransparency && style != WindowStyle.None)
{
throw new InvalidOperationException(SR.Get(SRID.MustUseWindowStyleNone));
}
}
WPF использует тот же механизм, что и Windows Forms, многослойные окна.Нет очевидных причин, по которым он не будет работать так же в WPF.Фрагмент кода, взятый из Window.cs, просто исключает его.Однако есть одна подсказка из свойства UsesPerPixelOpacity:
Когда вы включаете непрозрачность для каждого пикселя, система больше не рисует не-клиентскую область.Это связано с тем, что предполагаемая цель UsesPerPixelOpacity - показать непрямоугольный пользовательский интерфейс верхнего уровня, который работает в сценариях взаимодействия, и показать, что прямоугольная не-клиентская область побеждает эту цель.
«сценарии взаимодействия»,Я думаю.