首页 > 解决方案 > WPF:Prism Window XAML 的 Topmost 属性的 DataTrigger

问题描述

我正在尝试使用 DataTrigger 控制棱镜弹出窗口的 Topmost 属性,以便当按下 XAML 文件中的按钮时,Topmost 属性设置为 false。我对 WPF 很陌生,不确定我需要做什么才能使绑定正常工作。

请注意,IsModal 属性设置为 false,我希望保持这种状态,除非 IsModal 功能也可以使用按钮中的 DataTrigger 设置样式。

这是带有样式和尝试触发的棱镜弹出窗口

    <prism:InteractionRequestTrigger SourceObject="{Binding DataBarChartRequest, Mode=OneWay}">
        <prism:PopupWindowAction IsModal="False" WindowStartupLocation="CenterScreen">
            <prism:PopupWindowAction.WindowStyle>
                <Style TargetType="{x:Type Window}">
                        <Setter Property="Topmost" Value="True"/>
                        <Setter Property="Height" Value="650"/>
                        <Setter Property="Width" Value="900"/>
                        <Setter Property="ResizeMode" Value="CanResize"/>
                        <Setter Property="ShowInTaskbar" Value="True"/>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=StopButton, Path=IsPressed}" Value="True">
                            <Setter Property="Window.Topmost" Value="False" />
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </prism:PopupWindowAction.WindowStyle>
            <prism:PopupWindowAction.WindowContent>
                <local:DataBarChartNotificationView Width="NaN" Height="NaN" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
            </prism:PopupWindowAction.WindowContent>
        </prism:PopupWindowAction>
    </prism:InteractionRequestTrigger>

这是按钮

            <RibbonButton Label="Stop" 
                          x:Name="StopButton"
                          Command="{Binding StopSessionCommand}"
                          LargeImageSource ="{StaticResource SessionStopGray}" 
                          FontSize="12" 
                          FontWeight="Regular" 
                          Height="60" 
                          Margin="0,10,0,0" 
                          Foreground="White"/>

似乎,尽管这个 InteractionRequestTrigger 与我的按钮在同一个 xaml 文件中,但棱镜弹出窗口找不到这个本地源,或者它根本不起作用。想知道我是否可以使用 XAML 文件中的按钮将 IsModal 或 Topmost 属性设置为 DataTrigger 或如何修复我的绑定来这样做。

标签: wpfxamlprismdatatriggertopmost

解决方案


推荐阅读