홈>
WPF를 처음 접했고 여러 사용자 컨트롤이있는 창을 표시하고 싶었습니다.
example.xaml
<DockPanel>
<Border x:Name ="TopRegion" DockPanel.Dock = "top">
<local:userControl1/>
</Border>
<Border x:Name ="leftRegion" DockPanel.Dock = "left">
<local:userControl2/>
</Border>
</DockPanel>
usercontrol1과 usercontrol2는 동일한 프로젝트의 다른보기입니다. 즉, usercontrol1.xaml 및 usercontrol2.xaml입니다.
문제는 내가
usercontrol
를 변경해야한다는 것입니다
와이즈 비츠
leftRegion
에서
usercontrol2
로
프로그래밍 방식으로 런타임 중에.
usercontrol3
- 답변 # 1
- 답변 # 2
이것은 합법적 인 요청이지만 XAML 및 데이터 바인딩의 논리와 교차하므로 최종 사용자에게 동일한 효과를 주지만 더 많은 대안을 제시하는 대안을 제안합니다. XAML.
솔루션은 간단합니다. XAML에 두 컨트롤이 모두 있고
Visibility
를 전환하면 하나 또는 다른 컨트롤을 표시해야하는지 여부에 따라 다릅니다.
관련 질문
- c# : 스타일이 code에서 적용되지 않는 이유는 무엇입니까?
- c# : WPF MVVM을 사용한 중첩 바인딩
- c# : XAML 페이지 간에 값(매개변수)을 전달하는 방법은 무엇입니까?
- c# : 팝업을 창에 고정하는 방법 /WPF에서 창으로 이동하는 방법
- c# : 토글 버튼 및 모든 버튼 템플릿
- c# : WPF XAML: 기본 스타일 설정을 위한 Label.Resources 대 Label.Style의 차이점 -또는 Label.Resources의 x:Key 없는 스타일이 기본값으로 사용되는 이유는 무엇입니까?
- c# : ListViewItem 클릭 이벤트를 내부에 있는 버튼 클릭 이벤트로 재정의
- c# : WPF ListView에서 업데이트 버튼을 사용하여 선택한 항목 업데이트
- 내 다운로더(WPF, C#)에 파일 동시 다운로드 기능을 추가하는 방법
- c# : code 숨김에서 WPF 게시 버전 번호를 읽는 방법
당신은 이미
Border
를지었습니다. leftRegion,이Border
를 사용할 수 있습니다 같은 새 아이를 설정프로그래밍 방식으로 코드 숨김.
이것은
userControl2
인스턴스를 교체한다는 의미입니다Border
의 새로운userControl3
인스턴스 .