Heimdallr.ToolKit
1.0.0
dotnet add package Heimdallr.ToolKit --version 1.0.0
NuGet\Install-Package Heimdallr.ToolKit -Version 1.0.0
<PackageReference Include="Heimdallr.ToolKit" Version="1.0.0" />
<PackageVersion Include="Heimdallr.ToolKit" Version="1.0.0" />
<PackageReference Include="Heimdallr.ToolKit" />
paket add Heimdallr.ToolKit --version 1.0.0
#r "nuget: Heimdallr.ToolKit, 1.0.0"
#:package Heimdallr.ToolKit@1.0.0
#addin nuget:?package=Heimdallr.ToolKit&version=1.0.0
#tool nuget:?package=Heimdallr.ToolKit&version=1.0.0
Heimdallr.WPF.MVVM.Toolkit
Prism.DryIco, CommunityToolkit.Mvvm, WpfAutoGrid.Core 필수 Utility 지원하는 WPF 및 MVVM Toolkit
Heimdallr.App [실행프로젝트]
- 01 App.cs
- 02 Starter.cs
Heimdallr.ToolKit [Uitilty Class Library]
CommunityToolkit.Mvvm (8.4.0), Prism.DryIco (9.0.537), WpfAutoGrid.Core (1.5.1), Newtonsoft.Json (13.0.3), YamlDotNet.NetCore (1.0.0) Nuget Package 설치
Heimdallr.ToolKit Project Overview
■ Properties [Folder]
- AssemblyInfo.cs
■ Animations [Folder]
- EasingFunctions [Folder]
- EasingFunctionBaseMode.cs [이징 함수(easing function) 의 다양한 모드를 정의하는데 사용(Enum)]
- ColorAnimationItem.cs [WPF에서 색상 애니메이션을 제어하는 ColorAnimation을 상속(적용할 대상과 속성, 이징 모드 등을 설정)]
- DoubleAnimationItem.cs [Storyboard에서 사용할 수 있도록 대상 속성, 대상 이름, 이징 함수 등을 설]
- ThicknessAnimationItem.cs [Margin, Padding, BorderThickness 등의 Thickness 속성에 애니메이션을 적용(타겟 요소 및 속성)]
■ Applications [Folder]
- HeimdallrApplication.cs [PrismApplication 을 상속받는 추상 클래스 (AddInversionModule[IoC 모듈을 애플리케이션에 추가], AddWireDataContext(ViewModelLocationScenario 는 View-ViewModel 매핑 설정))]
■ Attributes [Folder]
- UseDimmingAttribute.cs [특정 클래스에 대해 "디밍(Dimming) 효과를 사용할지 여부"를 지정, 뷰(View)나 윈도우(Window) 클래스에 적용하여, 해당 UI가 표시될 때 배경을 어둡게 처리할지 결정]
■ Commons [Folder] [공유]
- ObservableBase.cs [CommunityToolkit.Mvvm.ComponentModel 의 ObservableObject 상속]
■ Contracts [Folder] [계약]
- Viewing [Folder] [보기]
- IViewable.cs [View와 ViewModel에 대한 참조를 제공]
- IViewInitializable.cs [MVVM 아키텍처에서 ViewModel이 View에 연결되었을 때 실행]
- IViewLoadable.cs [View의 Loaded 이벤트가 발생했을 때, ViewModel이 후처리 로직을 수행]
■ Converters [Folder] [계약]
- BaseValueConverter.cs [BaseValueConverter<T> 제네릭 클래스, MarkupExtension 은 XAML에서 사용할 수 있도록 확장 기능]
- BooleanToVisibilityConverter.cs [bool 값을 Visibility로 변환]
- BoolToColorConverter.cs [True/False 값에 따라 색상을 반환]
- ComparisonConverter.cs [CheckBox, RadioButton, ComboBox, ListBox 등 선택 상태를 비교 기반으로 관리]
- ComparisonMultiConverter.cs [다중 값(MultiBinding) 비교]
- DateFormatConverter.cs [날짜 형식 지정 변환]
- EnumToTextConverter.cs [Enum 값을 문자열로 변환]
- HelperConverter.cs [여러 개의 소스 값을 변환해 하나의 타겟 값으로 바꾸거나 그 반대도 처리]
- IndexToNumberConverter.cs [ItmsContrl 상속(ListView, ListBox, ComboBox, WrapPanel 등에서 특정 아이템의 1-based 인덱스 번호를 반환(Number)]
- InverseComparisonConverter.cs [value != parameter일 때 true 반환하는 반전]
- MobileNumberConverter.cs [휴대전화번호 예-> 01012345678 → 010-1234-5678]
- MultiBooleanToVisibilityConverter.cs [로그인 시 사용 버튼을 화면에 표시 및 표시하지 않음]
- NullableBoolToTextConverter.cs [bool? (nullable bool)을 "예", "아니오", "모름" 등의 문자열로 변환합니다.]
- NullableIntConverter.cs [TextBox 에 Int 기본값 0 을 빈공간으로 처리]
- NumberCommaConverter.cs [숫자를 콤마 표기 천단위]
- PasswordToVisibilityConverter.cs [비밀번호 입력이나 특정 값의 상태에 따라 Visibility 값을 반환]
- ResourceBinding.cs [사용시점은 → "리소스를 동적으로 바인딩하고 싶을 때]
- StringToVisibilityConverter.cs [문자열이 비어 있는지 여부에 따라 Visibility를 반환]
- ValidatingBorderBrushConverter.cs [유효성 검사 및 기본 색상 값이 정상적으로 전달되었는지 확인]
- ValidatingBorderThicknessConverter.cs [유효성 검사 실패 시 두 번째 값 반환 (기본 테두리 두께 등)]
■ Dialogs [Folder]
- Base [Folder]
- ObservableDialog.cs [Prism의 IDialogAware를 구현하여 다이얼로그 제어, UseDimmingAttribute를 기반으로 다이얼로그가 열릴 때 배경 디밍 효과를 자동 적용]
■ Enums [Folder]
- IconMode.cs [None, Icon, Image]
- IconType.cs [Geometry 에서 사용할 Icon Name]
- ImageType.cs [Image 에서 사용할 Image Name]
- JustifyEnum.cs [수평 레이아웃 배치에서 자식 요소들 사이의 간격을 어떻게 분배할지를 설정할 때 사용]
■ Events [Folder]
- SwitchLanguagePubsub.cs [문자열을 전달받아 언어 변경]
- SwitchThemePubsub.cs [문자열을 전달받아 Theme 변경]
■ Extensions [Folder] [확장]
- AnimationExtensions.cs [Background, Foreground, BorderBrush, Fill 애니메이션]
- DependencyExtensions.cs [유틸리티 확장 메서드를 제공하는 매우 실용적인 도우미 클래스]
- EnumExtensions.cs [Enum 값에 정의된 Attribute를 가져옵니다]
■ Helpers [Folder]
- DimmingManager.cs [전역적으로 ViewModel 또는 다른 코드에서 UI와의 의존성 없이 디밍 상태를 변경]
- ThemeManager.cs [테마의 색상변경]
■ Infrastructure [Folder] [기본구조]
- AutoWiring [Folder] [자동연결]
- AutoWireManager.cs [View와 ViewModel을 자동으로 연결(Auto-Wiring)]
- ViewModelLocationScenario.cs [ViewModel을 View에 연결하기 위한 시나리오 정의의 추상클래스]
- ViewModelLocatorCollection.cs [View와 ViewModel 간의 자동 연결(Locator) 등록을 도와주는 컬렉션]
- ViewModelLocatorItem.cs [View와 ViewModel 간의 연결 관계를 정의하는 단일 매핑 항목]
- Messaging [Folder]
- EventAggregatorHub.cs [ViewModel 간 이벤트 기반 통신]
- IEventHub.cs [Prism PubSubEvent 시스템의 추상화 컴포넌트 간 강한 결합 없이 메시지를 주고받기 위해 활용]
- Navigation [Folder]
- ContentManager.cs [Region 기반의 View 전환을 간결하게 처리하기 위한 헬퍼 유틸리티]
■ Interfaces [Folder]
- IResourceManager.cs [아무 멤버가 없는 인터페이스지만, 특정 타입을 구분하는 데 사용]
- IThemeManager.cs [아무 멤버가 없는 인터페이스지만, 특정 타입을 구분하는 데 사용]
■ Models [Folder]
- FontFamilyUnit.cs [폰트 설정을 구성하고 외부 YAML 파일과 매핑되도록 설계된 폰트]
- FontPack.cs [FontFamilyUnit 폰트 설정]
- LanguagePack.cs [LanguageUnit Lanuage 설정]
- LanguageUnit.cs [Lanuage 설정으 구성하고 외부 YAML 파일과 매핑대도록 설계된 Lanuage]
- SolidColorBrushUnit.cs [색상 테마 정의와 같은 기능을 위해 YAML로 정의된 색상 값을 불러와 사용]
- ThemeModel.cs [테마 코드, 테마 이름, 아이콘 타입, 값 등을 저장, 데이터를 관리하고, 사용자가 선택한 테마에 맞는 값을 활용]
- ThemePack.cs [테마의 색상 을 YAML에서 설계된 Color 설정]
- ThemeRoot.cs [Theme, Font, Lanuage YAML]
■ Resources [Folder]
- Data [Folder]
- geometries.json [Geometry Data]
- images.yaml [Image Data]
- Summary.txt [리소스 사용방법]
- Geometies [Folder]
- GeometryItem.cs [geometries.json 파일 자료 (name, data) 속성]
- GeometryRoot.cs [geometries.json 파일 geometries Name]
- GeometryContainer.cs [GeometryItem 개체들을 관리하는 정적 클래스]
- GeometryConverter.cs [지정된 이름에 해당하는 GeometryItem의 데이터를 반환]
- GeometryData.cs [GeometryConverter를 사용하여 각 아이콘에 대한 데이터를 반환]
- Images [Folder]
- ImageItem.cs [images.yaml 파일 자료 (name, data) 속성]
- ImageRoot.cs [images.yaml 파일 images Name]
- ImageContainer.cs [ImageItem 개체들을 관리하는 정적 클래스]
- ImageConverter.cs [ImageContainer 에서 특정 이름의 ImageItem 을 조회, SVG 등 데이터 문자열을 반환]
- ImageData.cs [ImageConverter 를 사용하여 각 Image에 대한 데이터를 반환]
- Initialization [Folder]
- BaseResourceInitializer.cs [WPF 또는 .NET 앱에서 테마/로케일 등의 리소스를 초기화하는 기반 추상 클래스]
- ResourceManager.cs [Prism 프레임워크 기반 WPF 애플리케이션에서 테마 및 언어 리소스를 로딩, 전환 및 관리하는 역할]
■ Themes [Folder]
- Controls [Folder]
- Base [Folder]
- Border [Folder]
- Button [Folder]
- DatePicker [Folder]
- Grid [Folder]
- Icon [Folder]
- ListBox [Folder]
- ListView [Folder]
- Region [Folder]
- Slider [Folder]
- SliderPanel [Folder]
- StackPanel [Folder]
- ToggleButton [Folder]
- TreeView [Folder]
- Window [Folder]
- Generic.xaml [Themes 의 Xaml 등록]
■ UI [Folder]
- Controls [Folder]
- Base [Folder]
- Border [Folder]
- Button [Folder]
- DatePicker [Folder]
- Grid [Folder]
- Icon [Folder]
- ListBox [Folder]
- ListView [Folder]
- Region [Folder]
- Slider [Folder]
- SliderPanel [Folder]
- StackPanel [Folder]
- ToggleButton [Folder]
- TreeView [Folder]
- Window [Folder]
■ 기타 왜 Release로 빌드하나요? 최적화: Release 모드는 코드 최적화가 적용되어, 실행 속도나 크기가 더 효율적입니다. 디버깅 정보 제거: Debug 빌드는 디버깅 정보를 포함하지만, Release 빌드는 이러한 정보를 제거하고 실제 배포에 필요한 코드만 포함됩니다. 이는 패키지 크기를 줄이고, 실제 실행에 필요한 최적화된 코드를 제공합니다. 배포 준비: NuGet 패키지는 일반적으로 실제 운영 환경에서 사용되므로 최적화된 Release 빌드로 패키지를 만드는 것이 표준입니다.
.csproj 파일에 <GeneratePackageOnBuild>true</GeneratePackageOnBuild> 속성이 설정되어 있으면, 빌드가 완료되면 .nupkg 파일이 자동으로 생성됩니다. 생성된 .nupkg 파일은 bin\Release 폴더 안에 위치합니다.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0-windows7.0 is compatible. net9.0-windows was computed. net10.0-windows was computed. |
-
net8.0-windows7.0
- CommunityToolkit.Mvvm (>= 8.4.0)
- Newtonsoft.Json (>= 13.0.3)
- Prism.DryIoc (>= 9.0.537)
- WpfAutoGrid.Core (>= 1.5.1)
- YamlDotNet.NetCore (>= 1.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.0 | 235 | 5/15/2025 |