在WPF中,有没有办法在触发器中检查窗口的"WindowState“属性?我尝试过使用"0“、"Minimized”和“WindowState.Minimized”的值。
示例:
<Window.Triggers>
<Trigger Property="WindowState" Value="Minimized">
<Setter Property="ShowInTaskBar" Value="False" />
</Trigger>
</Window.Triggers>发布于 2011-01-13 00:29:59
其工作原理如下:
<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中。
发布于 2017-07-06 18:12:11
或者,如果希望窗口以外的控件响应WindowState属性,则可以改用DataTrigger:
<DataTrigger Binding="{Binding WindowState, RelativeSource={RelativeSource AncestorType=Window}}"
Value="Normal">
<Setter Property="Fill" Value="Green"/>
</DataTrigger>发布于 2019-02-19 17:58:49
窗口最大化时如何增加边框厚度的示例。否则,由于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>https://stackoverflow.com/questions/4670929
复制相似问题