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

더 자세히 ...

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

Public 멤버 함수

object Convert (object[] values, Type targetType, object parameter, CultureInfo culture)
object[] ConvertBack (object value, Type[] targetTypes, object parameter, CultureInfo culture)

정적 Private 멤버 함수

static double ToDouble (object v)
static double Clamp01 (double v)

상세한 설명

선택한 모서리, 컨테이너 크기, 지름 및 여백으로 LED의 바깥쪽 또는 안쪽 좌표를 계산합니다.

매개변수는 OuterLeft, OuterTop, InnerLeft 또는 InnerTop입니다.

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

멤버 함수 문서화

◆ Clamp01()

double Dreamine.UI.Wpf.Converters.LedPositionConverter.Clamp01 ( double v)
inlinestaticprivate

값을 0 이상 1 이하로 제한합니다.

매개변수
v제한할 값입니다.
반환값
제한된 값입니다.

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

221=> (v < 0) ? 0 : (v > 1 ? 1 : v);

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

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

◆ Convert()

object Dreamine.UI.Wpf.Converters.LedPositionConverter.Convert ( object[] values,
Type targetType,
object parameter,
CultureInfo culture )
inline

요청한 좌표 모드에 맞는 LED 위치를 계산합니다.

매개변수
values모서리, 범위, 지름, 가장자리 여백과 선택적 내부 비율 순서의 값입니다.
targetType대상 형식입니다.
parameter계산할 좌표 모드입니다.
culture사용하지 않는 문화권입니다.
반환값
계산된 좌표이며 모드나 입력이 유효하지 않으면 0입니다.

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

75 {
76 string mode = (parameter as string) ?? "OuterLeft";
77 if (values == null || values.Length < 4) return 0.0;
78
79 var corner = values[0] is LedCorner c ? c : LedCorner.TopRight;
80 double extent = ToDouble(values[1]); // width or height
81 double diameter = ToDouble(values[2]);
82 double edgeOffset = ToDouble(values[3]);
83 double innerScale = (values.Length > 4) ? ToDouble(values[4]) : 0.45;
84
85 double outerLeft = (corner == LedCorner.TopRight || corner == LedCorner.BottomRight)
86 ? extent - diameter - edgeOffset
87 : edgeOffset;
88
89 double outerTop = (corner == LedCorner.BottomLeft || corner == LedCorner.BottomRight)
90 ? extent - diameter - edgeOffset
91 : edgeOffset;
92
93 if (mode.Equals("OuterLeft", StringComparison.OrdinalIgnoreCase)) return outerLeft;
94 if (mode.Equals("OuterTop", StringComparison.OrdinalIgnoreCase)) return outerTop;
95
96 double innerDiameter = diameter * Clamp01(innerScale);
97 double offset = (diameter - innerDiameter) / 2.0;
98
99 if (mode.Equals("InnerLeft", StringComparison.OrdinalIgnoreCase)) return outerLeft + offset;
100 if (mode.Equals("InnerTop", StringComparison.OrdinalIgnoreCase)) return outerTop + offset;
101
102 return 0.0;
103 }

다음을 참조함 : Dreamine.UI.Wpf.Controls.BottomLeft, Clamp01(), ToDouble(), Dreamine.UI.Wpf.Controls.TopRight.

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

◆ ConvertBack()

object[] Dreamine.UI.Wpf.Converters.LedPositionConverter.ConvertBack ( object value,
Type[] targetTypes,
object parameter,
CultureInfo culture )
inline

다중 바인딩 역변환은 지원하지 않습니다.

매개변수
value대상 값입니다.
targetTypes원본 형식 배열입니다.
parameter변환기 매개변수입니다.
culture변환 문화권입니다.
반환값
정상적으로 반환되지 않습니다.
예외
NotSupportedException호출할 때 항상 발생합니다.

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

161 =>
162 throw new NotSupportedException();

◆ ToDouble()

double Dreamine.UI.Wpf.Converters.LedPositionConverter.ToDouble ( object v)
inlinestaticprivate

지원되는 숫자 또는 문자열 값을 실수로 변환합니다.

매개변수
v변환할 값입니다.
반환값
변환된 값이며 실패하면 0입니다.

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

189 {
190 if (v is double d) return d;
191 if (v is float f) return f;
192 if (v is int i) return i;
193 if (v is string s && double.TryParse(s, out var r)) return r;
194 return 0.0;
195 }

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

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

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