WPF의 랩 패널에 두 개의 버튼이 있고 그 중 하나에 IsDefault="True"
이 있습니다. 다른 버튼을 클릭하면 "기본 버튼"이됩니다.WPF에서 기본 버튼 변경
프레스 이벤트를 듣는 것으로 프로그래밍 방식으로이 작업을 수행 할 수 있다는 것을 알았지 만, 여기저기서 많은 코드를 연결해야 할 필요가없는 보편적 인 솔루션이 필요합니다.
WPF의 랩 패널에 두 개의 버튼이 있고 그 중 하나에 IsDefault="True"
이 있습니다. 다른 버튼을 클릭하면 "기본 버튼"이됩니다.WPF에서 기본 버튼 변경
프레스 이벤트를 듣는 것으로 프로그래밍 방식으로이 작업을 수행 할 수 있다는 것을 알았지 만, 여기저기서 많은 코드를 연결해야 할 필요가없는 보편적 인 솔루션이 필요합니다.
더 선언적인 세션에서 구현하려는 경우 Button의 Clicked 이벤트에 WPF EventTrigger
을 정의하고 영향을받는 버튼의 속성을 변경하는 스토리 보드를 정의 할 수 있습니다. 당신이 작동하는지 테스트 할 수 있도록
<Window x:Class="TriggerSample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<StackPanel>
<Button x:Name="one" Content="One">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<EventTrigger RoutedEvent="Click">
<BeginStoryboard>
<Storyboard >
<BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="(Button.IsEnabled)">
<DiscreteBooleanKeyFrame Value="False" />
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
<Button Content="Two" />
</StackPanel>
</Window>
그것은이 IsEnabled 속성을 변경 : 여기
무슨 뜻인지 보여주는 샘플입니다. 그런 다음 IsDefault 속성으로 변경하면됩니다 (이 값은 True 값을 얻게됩니다)두 번째 버튼의 첫 번째 버튼 IsDefault
속성을 역수로 바인딩하면 다음과 같이 설정해야합니다. IsDefault
을 첫 번째 버튼에서 트리거를 사용하여 끄고 두 번째 버튼이 자동으로 켜집니다! 당신이 사용하는 경우
<Button x:Name="B1" IsDefault="True"/>
<Button x:Name="B2" IsDefault="{Binding ElementName=B1, IsDefault, Converter={StaticResource InvertBooleanConverter}}"/>
"얀 크라 토치 빌"스타일이 전체 XAML에서 쉽게 작동합니다 내 바인딩에 그의 대답에서 트리거.
내가 보는 방법은 클릭 한 버튼에 대해 'IsEnabled'를'false '로 만드는 것입니다. WPF에서 "버튼 그룹"개념이 없습니까? 컨테이너 안에 버튼을 래핑 한 다음 버튼 그룹 내의 모든 버튼을 클릭 한 다음이를 처리하는 코드가 있습니까? – Tower