여러 Xaml 파일로 WPF 인터페이스 분할
XAML을 사용하여 사용자 인터페이스를 작성하려고 합니다만, 파일이 급속히 커져서 작업하기 어려워지고 있습니다.여러 파일로 분할하는 가장 좋은 방법은 무엇입니까?
ComboBox 등의 요소의 내용을 다른 xaml 파일에 정의되어 있는 요소(단, 같은 VS 프로젝트)로 설정할 수 있으면 좋겠습니다.
감사해요.
UserControls를 정의함으로써 대규모 사용자 인터페이스를 분할할 수 있습니다.
솔루션 트리를 오른쪽 클릭하여 [Add]-> [ New Item ... ]를 선택합니다.[사용자 제어(User Control)]를 선택합니다.이것은 일반적인 방법으로 설계할 수 있습니다.
그런 다음 네임스페이스 선언을 사용하여 XAML에서 사용자 컨트롤을 참조할 수 있습니다.창에 사용자 제어를 포함한다고 가정해 보겠습니다.다음 예제에서는 "YourCompany"라는 네임스페이스에 "Foo"라는 사용자 제어를 추가했습니다.컨트롤":
<Window x:Class="YourCompany.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="clr-namespace:YourCompany.Controls">
<Controls:Foo ... />
특정 예에서는 사용자 컨트롤 내의 데이터를 표시하는 DataTemplate를 정의하여 콤보 상자에서 사용자 컨트롤을 사용할 수 있습니다.
ResourceDictionary를 사용하여 XAML 파일을 분할할 수 있습니다.ResourceDictionary를 사용하여 다른 파일을 병합할 수 있습니다.
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="myresourcedictionary.xaml"/>
<ResourceDictionary Source="myresourcedictionary2.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Page.Resources>
ResourceDictionary에서 기본 XAML 파일이 작아지도록 요소에서 사용할 수 있는 스타일을 선언할 수도 있습니다.
더 작은 XAML 파일을 얻을 수 있는 또 다른 방법은 메인 앱에서 사용할 컨트롤을 정의하는 것입니다.
또한 페이지를 작성할 수 있습니다.UserControl
.aPage
에서 호스트 할 수 있습니다.Window
또는 프레임별.페이지와 사용자 컨트롤의 장단점을 검색합니다.사용자의 요구에 가장 적합한 내비게이션에 대한 요구 사항에 따라 달라집니다.
스타일 및 사용자 컨트롤을 사용합니다.인터페이스를 작은 부분으로 분할하여 다른 xaml 파일로 코드화합니다.예:
<Window>
<VeryBigControl>
<VeryBigControl.Style>
... <!--very long style-->
</VeryBigControl.Style>
.. <!--content of very big control-->
</VeryBigControl
</Window>
3개의 xaml 파일로 나눕니다.
Window.xaml - 이것은 Window가 됩니다.
VeryBigControl.xaml - UserControl이 됩니다.
VeryBigControlStyle.xaml - 리소스 사전이 됩니다.
등:)
언급URL : https://stackoverflow.com/questions/224765/splitting-wpf-interface-across-multiple-xaml-files
'programing' 카테고리의 다른 글
Active Directory 사용자 그룹을 SQL Server에서 로그인으로 추가하는 방법 (0) | 2023.04.19 |
---|---|
PowerShell에서 줄 바꿈 없이 텍스트를 출력하려면 어떻게 해야 합니까? (0) | 2023.04.19 |
UIView 주위의 점선 테두리 (0) | 2023.04.19 |
브런치가 추적하고 있는 리모콘을 변경하는 방법 (0) | 2023.04.19 |
Send Message와 Post Message의 차이점은 무엇입니까?또, 이것들이 C#, WPF 및 Pure windows 프로그래밍과 어떻게 관련되어 있습니까? (0) | 2023.04.19 |