저는 스타일 이랑 관련하여 머리를 쓰려고 고군분투하면서 WPF에 처음 들어 왔습니다. 첫째,이 스타일은 어디에서나 오류를 발생시키지 않습니다. 아직 완전히 정확한지 확실하지는 않지만 ... 여기 스타일에 맞는 XAML이 있습니다.프로그래밍 방식으로 제어하는 스타일 적용
편집 : 스타일은 내 사용자 지정 UserControl을, 난 너무로서, 아이들의 캔버스에 UserControl을 추가하는 체크 박스를 사용하고 여기에서 스토리 보드 및 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 :
난 내 체크 박스를 캔버스에 추가 한 후 숨겨진에 대한 가시성을 설정하는 검사 이벤트, 눈에 보이는 가시성을 설정하는 클릭 이벤트와 새로운 버튼을 수정했지만, 슬프게도 그것은하지 않았다내 문제를 해결해.
컨트롤의 DataContext에 DataTrigger가 적용되지 않았습니까? 나는 그가 정상적인 방아쇠를 사용하거나 현재의 DataTrigger에서 RelativeSource를 지정해야한다고 생각한다. – Dtex
편집 2를 보아라. 나는 제안했지만 아무 소용이 없는지 시도했다. –
@Dtex 네가 맞아, 내가 어떻게 그리워하는지 모르겠다. 내 대답을 업데이 트하자 :) – Rachel