Применить эффект к окну владельца, когда дочернее окно открывается в XAML - PullRequest
1 голос
/ 03 ноября 2011

Как применить, например, эффект размытия при открытии дочернего окна в XAML?

Я применяю этот эффект, когда я устанавливаю владельца дочернего окна в коде, но я искал способ применить его в XAML. Есть ли что-нибудь, чтобы это подтвердить?

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 03 ноября 2011

Одним простым способом было бы поймать изменение свойства IsActive в стиле. Родительское окно будет деактивировано при появлении дочернего окна:

<Window.Style>
    <Style TargetType="Window">
        <Style.Triggers>
            <Trigger Property="IsActive" Value="False">
                <Setter Property="Effect">
                    <Setter.Value>
                        <BlurEffect Radius="5" />
                    </Setter.Value>
                </Setter>
            </Trigger>
        </Style.Triggers>
    </Style>
</Window.Style>

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

0 голосов
/ 07 февраля 2017

Небольшое улучшение времени разработки для принятого ответа - MultiTrigger.Таким образом, можно найти проверку свойства, которая всегда верна во время выполнения, но всегда ложна во время разработки.Например, не очень хорошо документированное свойство ToolTip.

<Window.Style>
    <Style TargetType="Window">
        <Style.Triggers>
            <MultiTrigger>
                <MultiTrigger.Conditions>
                    <Condition Property="IsActive" Value="False" />
                    <Condition Property="ToolTip" Value="A Tooltip"/>
                </MultiTrigger.Conditions>
                <Setter Property="Effect">
                    <Setter.Value>
                        <BlurEffect/> 
                    </Setter.Value>
                </Setter>
            </MultiTrigger>          
        </Style.Triggers>
    </Style>
</Window.Style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...