2016-11-21 4 views
0

Я попробовал решение SetWindowCompositionAttribute, и он работал хорошо, но без теней.
Я попробовал комбинировать blurbehind + наложить тень на окно с DropShadow for WPF Borderless Window, но вот у меня проблема с нефокусным/фокусным окном, потерянным прозрачностью.
Можно ли сделать окно без полей с blurbehind + shadow (а некоторые близкие/мин/макс)?
Пример: настройки AMD Radeon. Это wpf? Или пользовательское решение на C++.Borderless window with shadow and blurbehind

ответ

1
var accent = new AccentPolicy() 
{ 
    AccentState = AccentState.ACCENT_ENABLE_BLURBEHIND, 
    AccentFlags = 0x20 | 0x40 | 0x80 | 0x100, 
}; 

установленное значение AccentFlags придаст вашему окну эффект dropshadow, например меню и календарь Windows 10 enter image description here

enter image description here

+0

Я попробую. Можно ли настроить пользовательскую тень (цвет и т. Д.)? – ionmike

+0

Да. Работает. Могу ли я сделать глянцевые панели, например,

? – ionmike

+0

@ionmike На самом деле я имею в виду это [ссылка] (http://pastebin.com/22nueJdZ), вы можете видеть, что значения AccentFlags соответствуют четырем границам. Поскольку этот метод использует собственный API окон 10, я не думаю, что можно было бы сделать много подробных эффектов. Однако вы можете настроить прозрачность и цвет окна вашего приложения, чтобы получить аналогичный вид:

win10 –

0

Я знаю, как это сделать в XAML, вероятно, лучше всего иметь весь визуальный код в XAMl и логический код на C#.

Код:

// Set BorderThickness 0 для не boreder // играть с DropDownShadowEffect

<Border BorderBrush="color" BorderThickness="0" > 
     <Border.Effect> 
     <DropShadowEffect BlurRadius="10" Color="black" Direction="235" Opacity=".3" RenderingBias="Performance" ShadowDepth="4" /> 
     </Border.Effect> 
</Border> 

надежду, что это то, что вы ищете

+0

Я не думаю, что это сработает. Becouse вы пытаетесь применить тень к «в области окна» и могут (или будут) размываться. Там я пытаюсь сделать родной blurbehind + тень на окне (dwm). – ionmike

+1

@ionmike, да, за то, что вы хотите, вам, вероятно, придется прочитать контрольные шаблоны, так как они позволят вам изменить почти все управление, а не уверены в фактическом окне - извините – JohnChris