- 개발/C# WPF

[C# WPF] Tab control header 클릭 제어 UIElement/MouseLeftButtonDown

고미- 2023. 12. 26. 21:09
반응형
<Style x:Key="BorderStyle" TargetType="Border">
            <EventSetter Event="MouseLeftButtonDown" Handler="UIElement_MouseLeftButtonDown" />
        </Style>

// 컨트롤에 사용
// Border가 아닌 Grid 및 변경해서 사용가능
Style="{StaticResource BorderStyle}"

private void UIElement_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    string currentTabItemheader = ((sender as Border).TemplatedParent as TabItem).Header as string;
    CouponPointPopupViewModel vm = this.DataContext as CouponPointPopupViewModel;

    if ((tabControl.Items[_TabItemIndex] as TabItem).Header.ToString() != currentTabItemheader && _TabItemIndex == 1 && vm.TotalDisplayPoint != 0)
    {
        isPopup = true;
    }

    if (isPopup)
    {
        if (MessageBox.Show("No를 누르시면 버튼 클릭을 막습니다.", "알림", MessageBoxButton.YesNo) == MessageBoxResult.No)
        {
            // 버튼 클릭 자체를 막기
            e.Handled = true;
            return;
        }
        else
        {
            isPopup = false;
        }
    }
}
반응형