zoukankan      html  css  js  c++  java
  • WPF 使用触发器让窗口无法最大化且同时可以调整窗口大小

    先上代码:

      <Window.Style>
            <Style TargetType="{x:Type Window}">
                <Setter Property="WindowState"  Value="{Binding Tag, RelativeSource={RelativeSource Mode=Self}, UpdateSourceTrigger=PropertyChanged,Delay=100}"/>
                <Style.Triggers>
                    <Trigger Property="WindowState" Value="Maximized">
                        <Trigger.EnterActions>
                            <BeginStoryboard x:Name="bs">
                                <Storyboard Storyboard.TargetProperty="Tag"    Duration="0:0:0" >
                                    <ObjectAnimationUsingKeyFrames>
                                        <DiscreteObjectKeyFrame KeyTime="0:0:0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <WindowState>normal</WindowState>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </BeginStoryboard>
                        </Trigger.EnterActions>
                        <Trigger.ExitActions>
                            <RemoveStoryboard BeginStoryboardName="bs"/>
                        </Trigger.ExitActions>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Window.Style>

    主要思路让windowstatte绑定到一个无关紧要的且具有propertychanged的属性上。

    所以Tag是首选。

    其次是先让windowstate绑定到tag,最主要的是代码delay让数据有一个缓冲的阶段。

    同时使用触发器将值写入到tag中即可。

  • 相关阅读:
    java中JVM的原理重温【转】
    JavaBean 规范
    Java编程规范[转]
    spring mvc 多数据源切换,不支持事务控制[一]
    03-连连看-连通分析
    02-连连看-用例分析
    01参考资料
    03-稀疏矩阵
    02-对不重复的一组数据查找
    01-用链式结构打印学生成绩单
  • 原文地址:https://www.cnblogs.com/T-ARF/p/12422782.html
Copyright © 2011-2022 走看看