토글 단추에서 확장되는 간단한 사용자 지정 컨트롤을 만들면 사용자가 XAML에서 직접 선택되지 않은 내용을 지정할 수 있습니다. 그것은 잘 작동하지만 방아쇠를 기반으로하고, 스타일을 제외하고 방아쇠를 정의하는 방법을 모른다. 스타일을 정의하면 사용자 정의 컨트롤 외부에서 설정 한 내용이 모두 손실됩니다.기존 스타일을 재정의하지 않고 WPF 사용자 정의 컨트롤에 트리거를 추가하는 방법은 무엇입니까?
내가 할 수 있기를 원하는 것은 컨트롤의 다른 곳에 설정된 기존 스타일에이 트리거를 추가하는 것입니다.
다음은 스타일/트리거에 대한 XAML입니다.
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
<Setter Property="Content" Value="{Binding RelativeSource={RelativeSource Self}, Path=UncheckedContent}" />
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Content"
Value="{Binding RelativeSource={RelativeSource Self}, Path=CheckedContent}" />
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
나는 기본 유형으로 BasedOn 통해 스타일을 상속 시도했지만 사용자 지정 컨트롤은 부모가 설정 한 명시 적 스타일이 경우 작동하지 않습니다. 또한 EventTriggers를 고려했지만 컨트롤을 초기화하는 이벤트가있을 것이라고는 생각하지 않습니다.
누구든지 제공 할 수있는 도움에 감사드립니다. :)
입력 해 주셔서 감사합니다. 매우 도움이되었습니다. 나는 조금 다른 길을 갔다가 기존 스타일을 망가 뜨리지 않고 방아쇠를 추가하기 위해 코드의 뒤에 확장했다. 내가 이미 시도한 BasedOn 제안은 명시 적 스타일이 설정된 경우 작동하지 않습니다. 나는 당신의 아이디어에서 거기에 도착 했으므로 나는 그것을 대답으로 표시하고있다. 첨부 된 속성 아이디어가 정말 좋았으며 그 변경 사항도 적용했습니다. 감사합니다. :) –
당신이 한 일에 대한 자세한 내용을 게시 하시겠습니까? 나는 똑같은 일을하고 싶다. – stone
방금 이렇게 많은 코드가 저장되었습니다. 감사! – MattS423