'WPF의 XAML 디자이너가 Prism의 Region을 보여주고 싶다'는 내용을 해봤어요.

5483 단어 WPFPRISMC#
C# 제2 Advent Calendar가 2020 7일째@t13801206날 저에게 다음과 같은 글을 썼습니다.
[WPF] XAML 뷰어에 Region의 내용을 표시하고 싶습니다[Preism]
확실히 디자이너들도 프리즘으로 리지온에 뭔가를 보여주고 싶다는 생각을 가지고 있다.그래서 솔직히 "헤헤, 이래도 쓸 수 있겠어? 확실해!"이렇게 생각하다.
위의 글에서 아래의 방법은 디자인할 때 다른 물건을 같은 위치에 두는 것이다.
<!--仮-->
<d:ContentControl>
    <v:PrismUserControl2/>
</d:ContentControl>

<!--本番-->
<ContentControl prism:RegionManager.RegionName="ContentRegion" />
비록 이미 요구를 달성했지만 실제 실행할 때 View의 실례를 Region이 지정한 Control의 Conntent 속성에 설정했기 때문에 이것은 디자인할 때 내용을 표시하는 것이 정확하다고 생각합니다.
<ContentControl prism:RegionManager.RegionName="ContentRegion">
    <d:ContentControl.Content>
        <v:PrismUserControl2 />
    </d:ContentControl.Content>
</ContentControl>
d:ContentControl.Content 이름표를 써서 속성 요소 문법에 디자인할 때의 데이터를 표시할 수 있다.원래 방법의 장점은 실행할 때의 동작에 더욱 가깝기 때문에 디자이너의 외관과 실제 외관이 서로 어긋나기 어렵다는 것이다.
전편과 구성이 완전히 같지는 않지만, 제가 손 옆에 프로젝트를 하나 만들어 봤는데 위에서 지정한 내용도 리지온에view를 표시할 수 있는지 확인했어요.

. NET Framework는...


원 보도에서NET Framework에는 이 방법을 사용할 수 없다고 적혀 있습니다.
이것은 완전히 정확하다.NET Framework를 창문으로 내던지다.NET Core 3.1이요?NET5.0으로 옮긴다고 하면 너무하기 때문에 장래에 대해 말씀드리고 싶습니다.
현재도 같은 방법이다.NET Frame Work4.7.2 제작 프로젝트를 지정하는 디자이너도 표시되지 않습니다.

다만 앞으로는NET Framework를 위한 WPF 디자이너도 새롭게 바뀐다.다음 Visual Studio 2019 16.9(현재 미리보기)의 설정 화면에는 다음과 같은 설정 항목이 있습니다.

이거 걸고.NET Framework에서도NET Core.NET와 같은 새로운 디자이너를 사용하기 때문에 같은 방법으로 표현한다.

따라서 순조롭게 진행되면 비주얼스튜디오 2019 16.9 또는 16.10 정도의 최신 비주얼스튜디오를 사용하는 사람들에게 새로운 디자인의 데이터 설정이 좋을 것이다.NET Framework도 사용할 수 있을 것 같습니다.

사회인으로서의 접근 방법


지금NET Core.NET5.0으로 옮기지 않더라도 향후 일을 고려하면 완전히 무시할 수는 없다.나아가서NET Core.NET5.0은 Microsoft Update 등에 게시될 예정이다.회사 내부를 대상으로 하는 경우 WSUS에서도 배포할 수 있다.
.NET Core 2.1, 3.1, and .NET 5.0 updates are coming to Microsoft Update
그런 상황이니까 단계적으로.NET Core 3.1이야.NET5.0으로 옮기기 위해 이 걸음을 내딛는 것이 필요하다고 생각한다.(필요하지만 실제로 사내에서 할 수 있는 교섭을 하면 실제 해야 할 노동시간을 조금 생각해 낼 수 있을까...)
이전 절차로 프로젝트 파일의 형식을 기존의 좋은 거대한 XML의 csproj 형식에서 새로운 SDK 스타일의 프로젝트로 바꾸는 것이 최초의 절차이다.프로젝트 파일의 형식만 바뀌었기 때문에 이럴 때.NET Framework를 대상으로 하는 새 프로젝트 파일의 형식일 뿐입니다.
이 일을 하는 가장 간단한 방법은try-convert라는 도구를 사용하는 것이다.try-convert를 사용합니다.자동으로 NET Core로 변환할 수 있지만 이 변환된 프로젝트인 Target Framework를 넷47과 넷46에 지정했습니다.NET Framework를 대상으로 계속할 수 있습니다.
실제로 Qita에서try-convert를 시도했다는 보도도 있다.
.NET FrameworkNET Core로의 마이그레이션
SDK Style 항목으로 변환한 후 Target Framework 태그를 Target Frameworks로 변경하고 네트워크 46에 연결하십시오.netcoreapp3.1처럼 설정하면 한 항목에서 완성할 수 있다.및 NET FrameworkNET Core.NET를 타깃으로 삼을 수 있다.구축할 때 어떤 구축을 선택하면 됩니다.
이렇게까지 노력하면NET Core 3.1.NET Framework 4.7 지정된 두 항목 중NET Core.NET를 목표로 VS 2019에서 프로젝트를 열면 새로운 디자이너가 사용할 수 있다.

활용되지 않은 제3자제의 제어가 새로운 디자이너를 지원하지 않는 이유가 있다면 최신 도구의 기능을 활용하면서 사용하자.NET Framework 애플리케이션을 개발할 수 있을 것 같습니다.따라서try-convert에서 네트워크 47을 목표로 구축하고 실행하면 오류가 없습니다.NET Core.나는 그것을 NET와의 다목표로 지정하는 것이 아마도 수단일 것이라고 생각한다.
제품 발표용 빌딩을 잘못 알았다.NET Core 같은 걸로 만들지 말고 CI/CD 같은 걸로 해.NET Framework용 구축이 틀리지 않는 메커니즘을 만들 수 있다면 더욱 안심할 수 있을 것 같다.
CI/CD 파이프라인 같은 것을 준비하기 어려워도 SDK 스타일 프로젝트dotnet publish -c Release -f net47로 변환할 수 있다면 넣으면 bin\Release\net47\publish 폴더 생성 결과물, 최악의 일괄 처리 파일도 된다.나는 이 방면의 번거로움을 줄이는 것도 구 프로젝트 문서의 형식보다 좋다고 생각한다.

총결산


앞서 보도한 바와 같이 프리즘 리지온에서 디자인할 때도 뭐가 나오는지d: 디자인할 때 데이터 설정에 User Control을 설정할 생각은 스스로 없기 때문에 참고 가치가 있다.
이 글에서는 실행 시 동작에 더 가깝게 접근하는 설정 방법을 아이디어 그대로 시도했다.NET Framework에서도 앞으로 같은 일을 할 수 있고 노력한다면 지금이라도 할 수 있다.NET Framework를 사용하면서 새로운 디자이너를 쓰는 것도 불가능한 일은 아니라고 썼다.
그럼 WPF 앱을 개발해 주세요!

좋은 웹페이지 즐겨찾기