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"
这样就没有系统默认的阴影效果了
浙公网安备 33010602011771号