Dreamine.UI.Wpf.Controls 1.0.1
Dreamine.UI.Wpf.Controls 사용자 인터페이스 기능과 구성 요소를 제공합니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.UI.Wpf.Controls.DreamineCheckBox 클래스 참조

더 자세히 ...

Dreamine.UI.Wpf.Controls.DreamineCheckBox에 대한 상속 다이어그램 :
Dreamine.UI.Wpf.Controls.DreamineCheckBox에 대한 협력 다이어그램:

정적 Public 멤버 함수

static void SetCommandTriggerName (DependencyObject obj, string value)
static string GetCommandTriggerName (DependencyObject obj)
static void SetCommand (DependencyObject obj, ICommand value)
static ICommand GetCommand (DependencyObject obj)
static void SetCommandParameter (DependencyObject obj, object value)
static object GetCommandParameter (DependencyObject obj)

정적 Public 속성

static new readonly DependencyProperty CommandProperty
static new readonly DependencyProperty CommandParameterProperty
static readonly DependencyProperty CommandTriggerNameProperty

정적 Private 멤버 함수

static DreamineCheckBox ()
static bool GetIsHandlersHooked (DependencyObject d)
static void SetIsHandlersHooked (DependencyObject d, bool v)
static void OnCommandChanged (DependencyObject d, DependencyPropertyChangedEventArgs e)
static void TryExecuteCommand (DependencyObject d, string eventName, RoutedEventArgs eventArgs)

정적 Private 속성

static readonly DependencyProperty IsHandlersHookedProperty

상세한 설명

전용 스타일, 여러 입력 이벤트용 연결 명령과 Enter 키 토글을 제공하는 사용자 지정 체크박스입니다.

DreamineCheckBox.cs 파일의 21 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

◆ DreamineCheckBox()

Dreamine.UI.Wpf.Controls.DreamineCheckBox.DreamineCheckBox ( )
inlinestaticprivate

기본 스타일 키를 재정의하고 체크박스 테마 리소스를 병합합니다.

DreamineCheckBox.cs 파일의 31 번째 라인에서 정의되었습니다.

32 {
33 DefaultStyleKeyProperty.OverrideMetadata(typeof(DreamineCheckBox),
34 new FrameworkPropertyMetadata(typeof(DreamineCheckBox)));
35
36 try
37 {
38 var uri = new Uri("/Dreamine.UI.Wpf.Themes;component/DreamineCheckBoxStyle.xaml", UriKind.RelativeOrAbsolute);
39
40 var app = Application.Current;
41 if (app != null)
42 {
43 bool alreadyAdded = app.Resources.MergedDictionaries
44 .OfType<ResourceDictionary>()
45 .Any(x => x.Source != null && x.Source.Equals(uri));
46
47 if (!alreadyAdded)
48 {
49 var dict = new ResourceDictionary { Source = uri };
50 app.Resources.MergedDictionaries.Add(dict);
51 }
52 }
53 }
54 catch
55 {
56 // \brief Guard for design-time / missing resources, etc.
57 }
58 }

다음을 참조함 : DreamineCheckBox().

다음에 의해서 참조됨 : DreamineCheckBox().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 함수 문서화

◆ GetCommand()

ICommand Dreamine.UI.Wpf.Controls.DreamineCheckBox.GetCommand ( DependencyObject obj)
inlinestatic

설정된 명령을 가져옵니다.

매개변수
obj값을 읽을 개체입니다.
반환값
구성된 명령입니다.
예외
ArgumentNullExceptionobj 가 null이면 발생합니다.
InvalidCastException저장된 값이 명령이 아니면 발생합니다.

DreamineCheckBox.cs 파일의 340 번째 라인에서 정의되었습니다.

341 => (ICommand)obj.GetValue(CommandProperty);

다음을 참조함 : CommandProperty.

다음에 의해서 참조됨 : TryExecuteCommand().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetCommandParameter()

object Dreamine.UI.Wpf.Controls.DreamineCheckBox.GetCommandParameter ( DependencyObject obj)
inlinestatic

명령 매개변수를 가져옵니다.

매개변수
obj값을 읽을 개체입니다.
반환값
구성된 명령 매개변수입니다.
예외
ArgumentNullExceptionobj 가 null이면 발생합니다.

DreamineCheckBox.cs 파일의 410 번째 라인에서 정의되었습니다.

411 => obj.GetValue(CommandParameterProperty);

다음을 참조함 : CommandParameterProperty.

다음에 의해서 참조됨 : TryExecuteCommand().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetCommandTriggerName()

string Dreamine.UI.Wpf.Controls.DreamineCheckBox.GetCommandTriggerName ( DependencyObject obj)
inlinestatic

명령 트리거 이벤트 이름을 가져옵니다.

매개변수
obj값을 읽을 개체입니다.
반환값
구성된 이벤트 이름입니다.
예외
ArgumentNullExceptionobj 가 null이면 발생합니다.
InvalidCastException저장된 값이 문자열이 아니면 발생합니다.

DreamineCheckBox.cs 파일의 262 번째 라인에서 정의되었습니다.

263 => (string)obj.GetValue(CommandTriggerNameProperty);

다음을 참조함 : CommandTriggerNameProperty.

다음에 의해서 참조됨 : TryExecuteCommand().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetIsHandlersHooked()

bool Dreamine.UI.Wpf.Controls.DreamineCheckBox.GetIsHandlersHooked ( DependencyObject d)
inlinestaticprivate

처리기 연결 여부를 가져옵니다.

매개변수
d값을 읽을 개체입니다.
반환값
처리기가 연결되어 있으면 true입니다.
예외
ArgumentNullExceptiond 가 null이면 발생합니다.

DreamineCheckBox.cs 파일의 106 번째 라인에서 정의되었습니다.

106=> (bool)d.GetValue(IsHandlersHookedProperty);

다음을 참조함 : IsHandlersHookedProperty.

다음에 의해서 참조됨 : OnCommandChanged().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnCommandChanged()

void Dreamine.UI.Wpf.Controls.DreamineCheckBox.OnCommandChanged ( DependencyObject d,
DependencyPropertyChangedEventArgs e )
inlinestaticprivate

연결 명령 변경 시 마우스, 키보드, 터치와 클릭 처리기를 한 번만 연결합니다.

매개변수
d명령 값이 변경된 개체입니다.
e속성 변경 데이터입니다.

DreamineCheckBox.cs 파일의 441 번째 라인에서 정의되었습니다.

442 {
443 if (d is not UIElement element)
444 return;
445
446 // \brief 중복 핸들러 등록 방지
447 if (GetIsHandlersHooked(d))
448 return;
449
450 // \brief 마우스
451 element.AddHandler(UIElement.PreviewMouseUpEvent, new MouseButtonEventHandler((s, ev) =>
452 {
453 TryExecuteCommand(d, "PreviewMouseUp", ev);
454 }), true);
455
456 element.AddHandler(Control.MouseDoubleClickEvent, new MouseButtonEventHandler((s, ev) =>
457 {
458 TryExecuteCommand(d, "MouseDoubleClick", ev);
459 }), true);
460
461 // \brief 키보드(Down): Enter/Return은 기본 CheckBox에서 토글이 아닐 수 있으므로 직접 토글 처리
462 element.AddHandler(UIElement.PreviewKeyDownEvent, new KeyEventHandler((s, ev) =>
463 {
464 // \brief 주 키 엔터는 Return으로 들어오는 경우가 많다.
465 if (ev.Key == Key.Enter || ev.Key == Key.Return)
466 {
467 // \brief Enter/Return 토글 강제
468 if (d is ToggleButton tb)
469 {
470 bool current = tb.IsChecked == true;
471 tb.IsChecked = !current;
472 }
473
474 // \brief 트리거 이름은 "PreviewKeyDown"으로도 쓸 수 있게 한다.
475 // \note 기존 예제는 PreviewKeyUp을 많이 쓰므로 둘 다 호출.
476 TryExecuteCommand(d, "PreviewKeyDown", ev);
477 TryExecuteCommand(d, "PreviewKeyUp", ev);
478
479 // \brief Enter가 DefaultButton으로 새는게 싫으면 막아라.
480 ev.Handled = true;
481 }
482 else if (ev.Key == Key.Space)
483 {
484 // \brief Space는 WPF 기본 토글이 정상 동작한다.
485 // \note 여기서 굳이 토글하지 않는다.
486 TryExecuteCommand(d, "PreviewKeyDown", ev);
487 // ev.Handled = false; // 기본 토글에 맡김
488 }
489 }), true);
490
491 // \brief 키보드(Up): Space/Enter/Return 지원
492 element.AddHandler(UIElement.PreviewKeyUpEvent, new KeyEventHandler((s, ev) =>
493 {
494 if (ev.Key != Key.Enter && ev.Key != Key.Return && ev.Key != Key.Space)
495 return;
496
497 TryExecuteCommand(d, "PreviewKeyUp", ev);
498
499 // \brief Up에서 막고 싶으면 활성화
500 // ev.Handled = true;
501 }), true);
502
503 // \brief 터치
504 element.AddHandler(UIElement.TouchUpEvent, new EventHandler<TouchEventArgs>((s, ev) =>
505 {
506 TryExecuteCommand(d, "TouchUp", ev);
507 }));
508
509 // \brief Click
510 element.AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler((s, ev) =>
511 {
512 TryExecuteCommand(d, "Click", ev);
513 }));
514
515 SetIsHandlersHooked(d, true);
516 }

다음을 참조함 : GetIsHandlersHooked(), SetIsHandlersHooked(), TryExecuteCommand().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ SetCommand()

void Dreamine.UI.Wpf.Controls.DreamineCheckBox.SetCommand ( DependencyObject obj,
ICommand value )
inlinestatic

실행할 명령을 설정합니다.

매개변수
obj값을 설정할 개체입니다.
value실행할 명령입니다.
예외
ArgumentNullExceptionobj 가 null이면 발생합니다.

DreamineCheckBox.cs 파일의 297 번째 라인에서 정의되었습니다.

298 => obj.SetValue(CommandProperty, value);

다음을 참조함 : CommandProperty.

◆ SetCommandParameter()

void Dreamine.UI.Wpf.Controls.DreamineCheckBox.SetCommandParameter ( DependencyObject obj,
object value )
inlinestatic

명령 매개변수를 설정합니다.

매개변수
obj값을 설정할 개체입니다.
value명령에 전달할 값입니다.
예외
ArgumentNullExceptionobj 가 null이면 발생합니다.

DreamineCheckBox.cs 파일의 375 번째 라인에서 정의되었습니다.

376 => obj.SetValue(CommandParameterProperty, value);

다음을 참조함 : CommandParameterProperty.

◆ SetCommandTriggerName()

void Dreamine.UI.Wpf.Controls.DreamineCheckBox.SetCommandTriggerName ( DependencyObject obj,
string value )
inlinestatic

명령 트리거 이벤트 이름을 설정합니다.

매개변수
obj값을 설정할 개체입니다.
value쉼표 구분 이벤트 이름입니다.
예외
ArgumentNullExceptionobj 가 null이면 발생합니다.

DreamineCheckBox.cs 파일의 219 번째 라인에서 정의되었습니다.

220 => obj.SetValue(CommandTriggerNameProperty, value);

다음을 참조함 : CommandTriggerNameProperty.

◆ SetIsHandlersHooked()

void Dreamine.UI.Wpf.Controls.DreamineCheckBox.SetIsHandlersHooked ( DependencyObject d,
bool v )
inlinestaticprivate

처리기 연결 여부를 설정합니다.

매개변수
d값을 설정할 개체입니다.
v처리기 연결 상태입니다.
예외
ArgumentNullExceptiond 가 null이면 발생합니다.

DreamineCheckBox.cs 파일의 140 번째 라인에서 정의되었습니다.

140=> d.SetValue(IsHandlersHookedProperty, v);

다음을 참조함 : IsHandlersHookedProperty.

다음에 의해서 참조됨 : OnCommandChanged().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ TryExecuteCommand()

void Dreamine.UI.Wpf.Controls.DreamineCheckBox.TryExecuteCommand ( DependencyObject d,
string eventName,
RoutedEventArgs eventArgs )
inlinestaticprivate

발생한 이벤트 이름이 트리거 목록과 일치하면 연결 명령을 실행합니다.

매개변수
d명령 설정을 보유한 개체입니다.
eventName발생한 이벤트 이름입니다.
eventArgs기본 명령 매개변수로 사용할 이벤트 데이터입니다.

DreamineCheckBox.cs 파일의 554 번째 라인에서 정의되었습니다.

555 {
556 var rawTrigger = GetCommandTriggerName(d);
557
558 // \brief null/empty면 실행 안 함 (명시적으로 "Click"을 기본값으로 줬음)
559 if (string.IsNullOrWhiteSpace(rawTrigger))
560 return;
561
562 var triggers = rawTrigger
563 .Split(',')
564 .Select(x => x.Trim())
565 .Where(x => !string.IsNullOrWhiteSpace(x))
566 .ToArray();
567
568 if (triggers.Length > 0 &&
569 !triggers.Contains(eventName, StringComparer.OrdinalIgnoreCase))
570 return;
571
572 var command = GetCommand(d);
573 if (command == null)
574 return;
575
576 var parameter = GetCommandParameter(d) ?? eventArgs;
577
578 if (command.CanExecute(parameter))
579 command.Execute(parameter);
580 }

다음을 참조함 : GetCommand(), GetCommandParameter(), GetCommandTriggerName().

다음에 의해서 참조됨 : OnCommandChanged().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ CommandParameterProperty

new readonly DependencyProperty Dreamine.UI.Wpf.Controls.DreamineCheckBox.CommandParameterProperty
static
초기값:
=
DependencyProperty.RegisterAttached(
"CommandParameter",
typeof(object),
new PropertyMetadata(null))

명령에 전달할 연결 매개변수 속성입니다.

DreamineCheckBox.cs 파일의 165 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : GetCommandParameter(), SetCommandParameter().

◆ CommandProperty

new readonly DependencyProperty Dreamine.UI.Wpf.Controls.DreamineCheckBox.CommandProperty
static
초기값:
=
DependencyProperty.RegisterAttached(
"Command",
typeof(ICommand),
new PropertyMetadata(null, OnCommandChanged))
static void OnCommandChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
Hooks internal event handlers once when Command changes.

구성된 입력 이벤트에서 실행할 연결 명령 속성입니다.

DreamineCheckBox.cs 파일의 150 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : GetCommand(), SetCommand().

◆ CommandTriggerNameProperty

readonly DependencyProperty Dreamine.UI.Wpf.Controls.DreamineCheckBox.CommandTriggerNameProperty
static
초기값:
=
DependencyProperty.RegisterAttached(
"CommandTriggerName",
typeof(string),
new PropertyMetadata("Click"))

쉼표로 구분된 명령 트리거 이벤트 이름 목록 속성입니다.

DreamineCheckBox.cs 파일의 180 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : GetCommandTriggerName(), SetCommandTriggerName().

◆ IsHandlersHookedProperty

readonly DependencyProperty Dreamine.UI.Wpf.Controls.DreamineCheckBox.IsHandlersHookedProperty
staticprivate
초기값:
=
DependencyProperty.RegisterAttached("IsHandlersHooked", typeof(bool), typeof(DreamineCheckBox),
new PropertyMetadata(false))

이벤트 처리기의 중복 연결을 방지하는 내부 플래그 속성입니다.

DreamineCheckBox.cs 파일의 70 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : GetIsHandlersHooked(), SetIsHandlersHooked().


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: