对于WPF来说,我真的很陌生,正在努力使自己的头脑与样式有关。首先,风格不会在任何地方抛出任何错误,尽管我仍然不确定它是否完全正确......所以这里是我的XAML风格;以编程方式应用样式来控制
编辑:风格应该让我的自定义用户控件在使用一个Storyboard和DoubleAnimation是
<Application.Resources>
<Style TargetType="{x:Type UserControl}" x:Key="UCStyle">
<Style.Triggers>
<DataTrigger Binding="{Binding Visibility}" Value="Visible">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="UserControl.Opacity" From="0.0" To="1.0" Duration="0:0:3">
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Application.Resources>
从这里消失,我使用一个复选框,添加一个用户控件在画布的孩子,像这样;
private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
UserControlLibrary.UserControl1 userControl = new UserControlLibrary.UserControl1();
userControl.Style = Resources["UCStyle"] as Style;
canvas1.Children.Add(userControl);
}
我对SO读了四周,发现了几个答案建议你这是怎么应用样式编程,引用键的样式。但是,当我运行这个,usercontrol似乎不会淡入(如样式建议)。
我在这里错过了一些至关重要的东西吗?或者只是有点傻?
编辑2:
我修改我的复选框选中事件来设置它添加到画布后能见度为隐藏,并用click事件的新按钮,设置能见度可见的,但遗憾的是它没有解决我的问题。
是不是DataTrigger应用于控件的DataContext?我认为他应该使用正常的触发器或在当前DataTrigger指定RelativeSource – Dtex
请参阅编辑2,我尝试了什么建议,但无济于事。 –
@Dtex你说得对,我不知道我是怎么错过的。让我更新我的答案:) – Rachel