Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查窗口的值';s";“窗口状态”;一触即发_C#_Wpf_Triggers_Windowstate - Fatal编程技术网

C# 检查窗口的值';s";“窗口状态”;一触即发

C# 检查窗口的值';s";“窗口状态”;一触即发,c#,wpf,triggers,windowstate,C#,Wpf,Triggers,Windowstate,在WPF中,是否有方法检查触发器中窗口的“WindowsState”属性?我尝试使用“0”、“最小化”和“WindowsState.Minimized”的值 例如: 的工作原理如下: 编辑:您需要将触发器放置在窗口中。Style或者,如果希望窗口以外的控件响应WindowsState属性,则可以使用DataTrigger: <DataTrigger Binding="{Binding WindowState, RelativeSource={RelativeSource Ancest

在WPF中,是否有方法检查触发器中窗口的“WindowsState”属性?我尝试使用“0”、“最小化”和“WindowsState.Minimized”的值

例如:


的工作原理如下:



编辑:您需要将触发器放置在
窗口中。Style

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

<DataTrigger Binding="{Binding WindowState, RelativeSource={RelativeSource AncestorType=Window}}" 
             Value="Normal">
   <Setter Property="Fill" Value="Green"/>
</DataTrigger>

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

本例还去掉了标准窗口标题,因此您必须添加自己的最小化/最大化/关闭按钮

<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>

谢谢你,救命恩人!我用它来稍微增加边框的大小,以避免当窗口最大化时边框消失。