c#/세미나

[세미나] Blazor / WPF / MAUI 밋업 (WPF 구성 요소)

루다대디 2024. 4. 3. 18:50

WPF 구성 요소

WPF의 핵심 DLL들 간의 참조 의존성 관계를 이해하는 것은

WPF 애플리케이션의 구조를 파악하고, 효율적으로 구성하는 데 큰 도움이 된다

클래스의 위치와 필요한 종속성을 알면 개발, 최적화, 문제 해결이 용이해지며
이는 더 견고한 애플리케이션 설계로 이어진다

 

WPF 핵심 어셈블리 요소들

PresentationFramework.dll

PresentationCore.dll

WindowsBase.dll

System.Xaml.dll

 

DLL 간의 참조 도식화

 

 

더보기

PresentationFramework.dll

- 클래스 : Border, Canvas, CheckBox, ComboBox, DockPanel, Expander, Grid, Image, ListBox, Menu, ProgressBar, RadioButton, ScrollViewer, Slider, StackPanel, TabControl, TextBlock, ToolBar, TreeView, WrapPanel, Style, DataTemplate, ControlTemplate, ResourceDictionary, Button, Label, MediaElement

- 인터페이스 : IComponentConnector, IStyleConnector

- 열거형 :FontStyle, FontWeight, HorizontalAlignment, VerticalAlignment, TextAlignment, Visibility, Stretch

- 구조체 :CornerRadius, GridLength, Thickness

 

PresentationCore.dll

- 클래스 : BitmapEffect, BlurBitmapEffect, DropShadowBitmapEffect, BitmapImage, DrawingGroup, GeometryDrawing, ImageBrush, LinearGradientBrush, MatrixTransform, PathGeometry, RenderTargetBitmap, ScaleTransform, SkewTransform, SolidColorBrush, TranslateTransform, VisualBrush

- 인터페이스 : IRenderInfo, IResourceDictionary, IVisual

- 열거형 : BrushMappingMode, GeometryCombineMode, GradientSpreadMethod, PenLineCap, PenLineJoin, TileMode, TextHintingMode

- 구조체 : Color, Matrix, Point, Rect, Size, Vector

 

WindowsBase.dll

- 클래스 : Application, CommandManager, DependencyPropertyRegister, DispatcherOperation, DoubleAnimation, KeyGesture, KeyBinding, PropertyChangedEventHandler, RoutedCommand, RoutedEvent, RoutedEventHandler, RoutedUICommand, Timer

- 인터페이스 : ICommand, INotifyPropertyChanged, INotifyCollectionChanged

- 열거형 : ComponentResourceKey, DispatcherOperationStatus, ModifierKeys, PropertyChangedEventArgs, UpdateSourceTrigger, DispatcherPriority

- 구조체 : Duration, Int32Rect

 

System.Xaml.dll

- 클래스 : XamlSchemaContext, XamlType, XamlMember, XamlDirective, NamespaceMapEntry, XamlNodeList, XamlXmlReader, XamlXmlWriter, MarkupExtension, StaticResourceExtension, BindingExtension

- 인터페이스 : IXamlLineInfoConsumer, IXamlLineInfoProvider, IXamlSchemaContextProvider, IXamlObjectWriterFactory, IXamlMember

이는 각 컴포넌트의 역할과 위치를 명확히 하며, 어떤 기능이 어느 DLL에 포함되어 있는지 알 수 있게 해주어,

필요한 클래스와 리소스를 적절히 참조할 수 있게 한다
 더 나아가, 의존성을 파악함으로써 개발자는 성능을 최적화하고,
발생 가능한 문제를 예측 및 해결하는 데 필요한 깊이 있는 지식을 갖출 수 있다

이러한 이해는 안정적이고 확장 가능하며 유지보수가 쉬운 WPF 애플리케이션을 설계하는 데 결정적인 요소가 되며,

결국 사용자에게 더 나은 경험을 제공하는 완성도 높은 소프트웨어로 이어지는 길이다