Heimdallr.ToolKit 1.0.0

dotnet add package Heimdallr.ToolKit --version 1.0.0
                    
NuGet\Install-Package Heimdallr.ToolKit -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Heimdallr.ToolKit" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Heimdallr.ToolKit" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Heimdallr.ToolKit" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Heimdallr.ToolKit --version 1.0.0
                    
#r "nuget: Heimdallr.ToolKit, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Heimdallr.ToolKit@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Heimdallr.ToolKit&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Heimdallr.ToolKit&version=1.0.0
                    
Install as a Cake Tool

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 Compatible and additional computed target framework versions.
.NET net8.0-windows7.0 is compatible.  net9.0-windows was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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