WPF 클릭된 버튼만 색깔 변경하기

안녕하세요. WPF를 갓 시작한 사람입니다.

다름이 아니라 다수의 버튼이 있을때

클릭된 오직 하나의 버튼만 색깔 변경을 하고 다른 버튼을 눌렀을때 이전 버튼의 색은 원래대로 돌아오게 하고 싶습니다.

 <Style.Triggers>
        <Trigger Property="IsPressed" Value="True">
            <Trigger.EnterActions>
                <BeginStoryboard>
                    <Storyboard>
                        <ColorAnimation Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" To="OrangeRed"/>
                    </Storyboard>
                </BeginStoryboard>
            </Trigger.EnterActions>
        </Trigger>
        </Style.Triggers>

이런식으로 하니까 다수의 버튼이 모두 색이 변하고 색이 원래색으로 돌아오질 않아서요. 어떻게 구성할 수 있을까요?

1개의 좋아요

말씀하신 버튼의 동작 방식이
‘라디오 버튼’ 아닌가요?

라디오 버튼의 IsChecked 속성을 이용해서 트리거로 스타일 작업을 하면 될 것 같습니다.

2개의 좋아요

@aroooong Button의 형식을 빌려서 클릭되었을때만 이벤트를 주고싶어서요 ㅠㅠ

1개의 좋아요

라디오 버튼 → 토글 버튼 → 버튼

즉 모두 다 같은 버튼 베이스 입니다.

이게 무슨 뜻인지 잘 이해가 안됩니다.

‘클릭 되었을때만’ 이라는 액션 자체가

클릭 해서 누르고 있는 시점인지 (IsPressed)
클릭 이후 마우스를 땜 시점인지 (토글의 IsChecked = true)

어떤 상황인건가요?

후자인 경우라면 라디오버튼(토글 버튼) 으로 처리해야지요

2개의 좋아요

@aroooong Radio button의 apperance를 button 형식(모습)으로 커스텀하는게 가능한가요? 후자의 상황이 맞습니다

1개의 좋아요

네 컨트롤템플릿 스타일 처리로 가능합니다.
토글버튼을 이용하면 모습도 그냥 일반 버튼과 동일할껍니다.

2개의 좋아요

@aroooong 감사합니다!

1개의 좋아요