Удаление эффекта тени при максимальном увеличении окна в wpf

У меня было окно со стилями

Background="Transparent", AllowsTransparency="True", WindowStyle="None",  ResizeMode="NoResize".

Я разместил пользовательские кнопки min, max, close и реализовал функциональность. И поскольку я хочу, чтобы окно изменяло размер окна со всех сторон. Я реализовал его с помощью HwndSource , который отлично работает. Теперь моя забота - я хочу теневой эффект для window.so, я разместил границу с эффектом тени таким образом.



    
        
    

     **Content over here**

окно получает эффект тени. но когда я максимизирую окно. он не подходит для экрана, поскольку я добавил границу. Мне нужно удалить эффект тени, когда окно максимизируется, чтобы оно соответствовало экрану. и теневой эффект должен появиться, когда окно находится не в максимизированном состоянии. как получить это или есть какой-либо другой способ получить это. Пожалуйста, помогите мне найти решение.

1
добавлено отредактировано
Просмотры: 1

2 ответы

Я думаю, что можно было бы добавить/удалить эффект тени динамически в коде, создав стиль для вашей границы. Вы можете создать стиль для своей границы примерно так:


А затем установите его динамически в коде

borderelement.Style = (Стиль) Application.Current.MainWindow.Resources ["borderstyle"];

и удалите его, используя следующий код

borderelement.Style = null

0
добавлено

Вы можете использовать триггер, чтобы определить, максимизировано ли Окно, а затем в триггере, удалите эффект. Просто перегрузите шаблон для окна и внутри триггеров ControlTemplate добавьте триггер

 
    
        
            
                
            
            
        
        
            <trigger Property="WindowState" Value="Maximized">
                
            
        
    


0
добавлено