首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在触发器中检查窗口的"WindowState“值

在触发器中检查窗口的"WindowState“值
EN

Stack Overflow用户
提问于 2011-01-13 00:03:45
回答 3查看 6.2K关注 0票数 6

在WPF中,有没有办法在触发器中检查窗口的"WindowState“属性?我尝试过使用"0“、"Minimized”和“WindowState.Minimized”的值。

示例:

代码语言:javascript
复制
<Window.Triggers>
    <Trigger Property="WindowState" Value="Minimized">
        <Setter Property="ShowInTaskBar" Value="False" />
    </Trigger>
</Window.Triggers>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-13 00:29:59

其工作原理如下:

代码语言:javascript
复制
<Window.Style>
    <Style TargetType="Window">
        <Style.Triggers>
            <Trigger Property="WindowState" Value="Minimized">
                <Setter Property="ShowInTaskbar" Value="False" />
            </Trigger>
        </Style.Triggers>
    </Style>
</Window.Style>

编辑:您需要将触发器放在Window.Style中。

票数 7
EN

Stack Overflow用户

发布于 2017-07-06 18:12:11

或者,如果希望窗口以外的控件响应WindowState属性,则可以改用DataTrigger:

代码语言:javascript
复制
<DataTrigger Binding="{Binding WindowState, RelativeSource={RelativeSource AncestorType=Window}}" 
             Value="Normal">
   <Setter Property="Fill" Value="Green"/>
</DataTrigger>
票数 9
EN

Stack Overflow用户

发布于 2019-02-19 17:58:49

窗口最大化时如何增加边框厚度的示例。否则,由于WindowChrome的奇怪之处,边界将会消失。

这个例子还去掉了标准的窗口标题,所以你必须添加你自己的最小化/最大化/关闭按钮。

代码语言:javascript
复制
<Window ResizeMode="CanResizeWithGrip"
        WindowStyle="SingleBorderWindow">
    <!-- Remove window header and border. Use with ResizeMode="CanResizeWithGrip" and WindowStyle="SingleBorderWindow". -->
    <WindowChrome.WindowChrome>
        <WindowChrome     
            CaptionHeight="1"  
            CornerRadius ="0"
            ResizeBorderThickness="4"         
            GlassFrameThickness="0">
        </WindowChrome>
    </WindowChrome.WindowChrome>            
    <Border BorderThickness="1">     
        <Border.Style>
            <Style TargetType="{x:Type Border}">
                <Style.Triggers>
                    <!-- Add to avoid border disappearing when window is maximised -->
                    <DataTrigger Binding="{Binding WindowState, RelativeSource={RelativeSource AncestorType=Window}}" 
                                 Value="Maximized">
                        <Setter Property="Margin" Value="10"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding WindowState, RelativeSource={RelativeSource AncestorType=Window}}" 
                                 Value="Normal">
                        <Setter Property="Margin" Value="0"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Border.Style>
        <Grid>
           <!-- Window XAML here. -->
        <Grid>
     </Border>
 </Window>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4670929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档