C# 检查窗口的值';s";“窗口状态”;一触即发
在WPF中,是否有方法检查触发器中窗口的“WindowsState”属性?我尝试使用“0”、“最小化”和“WindowsState.Minimized”的值 例如: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
的工作原理如下:
编辑:您需要将触发器放置在
窗口中。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>
谢谢你,救命恩人!我用它来稍微增加边框的大小,以避免当窗口最大化时边框消失。