0505资源合并中的样式问题

讲绑定的时候再介绍:DataTrigger、MultiDataTrigger

1、窗口加载的时候动画

    <Window.Triggers>
        <EventTrigger RoutedEvent="Window.Loaded" SourceName="btn">
            <BeginStoryboard/>
            <StopStoryboard/>
            <PauseStoryboard/>
            <ResumeStoryboard/>
        </EventTrigger>
    </Window.Triggers>

 

 

2、点击按钮的时候,按钮宽度变为300

1、通过Window.Triggers设定事件

    <Window.Triggers>
        <EventTrigger RoutedEvent="Button.Click" SourceName="btn">
            <!--对应的动画操作-->
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation Duration="0:0:1" To="300"
                                     Storyboard.TargetName="btn"
                                     Storyboard.TargetProperty="Width"/>
                </Storyboard>
            </BeginStoryboard>
            <!--<StopStoryboard/>
            <PauseStoryboard/>
            <ResumeStoryboard/>-->
        </EventTrigger>
    </Window.Triggers>

这样需要指定Name="btn"

<Button Content="Button" Style="{StaticResource buttonStyle}" Name="btn"/>

 

2、直接在Style里面设置EventTrigger

        <Style TargetType="Button" x:Key="buttonStyle">
            <Style.Triggers>
                <EventTrigger RoutedEvent="Button.Click">
                    <!--对应的动画操作-->
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation Duration="0:0:1.5" To="300"
                                     Storyboard.TargetProperty="Width"/>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Style.Triggers>
        </Style>

这样不需要设置前面的属性Name,直接通过Style实现

Duration="0:0:1.5"时间区间1.5秒

 

 

3、IssusWin绑定TreeViewItem

1、TreeViewItem绑定的必须是属性,不能是字段,要带{get;set}

public List<string> Datas { get; set; } = new List<string>();

2、绑定this.DataContext = this; 把当前实例给自己

3、<TreeView ItemsSource="{Binding Datas}"

 

4、第一个关联不上资源字典样式

框架bug 

解决1:样式移动到<Grid.Resources>

  不要写到<ResourceDictionary.MergedDictionaries>,并行的

 解决2:移到<TreeView.Resources>

解决3:直接写<Style TargetType="MenuItem">,不套资源字典

解决4:直接写到引用的Res里面

 

集合绑定都会有这个问题,MenuItem,itemControl同样存在

  <Menu ItemsSource="{Binding Datas}"

 

 

答疑

1、复选框权限树,勾选逻辑

父节点勾选,子节点全部勾选

子节点取消,父节点勾选取消

子节点全部选中,父节点跟着勾选

 

 

2、设置了高度,放大窗口后,高度随之变化

    <WindowChrome.WindowChrome>
        <WindowChrome CaptionHeight="{Binding ActualHeight,ElementName=win}"/>
    </WindowChrome.WindowChrome>

Window设置 Name="win"

 

3、设置窗体圆角白边

<Border CornerRadius="20" Background="LightGray" BorderBrush="Red" BorderThickness="2">

设置窗体设置

WindowStartupLocation="CenterScreen" Background="Transparent" AllowsTransparency="True" WindowStyle="None"

这样就没有系统默认的阴影效果了

 

posted on 2025-04-10 10:22  张彦山  阅读(13)  评论(0)    收藏  举报