각 응용 프로그램 창에서 동일한 네임 스페이스가 필요한 경우 xmlns:Engine="clr-namespace..."
을 피할 수 있습니까?모든 창에서 XAML 네임 스페이스 가져 오기를 피하는 방법
감사합니다.
각 응용 프로그램 창에서 동일한 네임 스페이스가 필요한 경우 xmlns:Engine="clr-namespace..."
을 피할 수 있습니까?모든 창에서 XAML 네임 스페이스 가져 오기를 피하는 방법
감사합니다.
나는 HCL에 동의한다. 나는 할 수 없다고 생각하고 네임 스페이스를 추가하면 더 많은 리소스를 소비하지 않을 것이라고 생각한다.
대체 방법을 알려 드리겠습니다. 네임 스페이스를 포함하도록 창 템플릿을 변경하거나 자신의 템플리트 중 하나를 만들 수 있습니다. 내 컴퓨터에서
, VS2010 들어, 템플릿의 경로는 다음과 같습니다\ 참고 하나는 vb.Net 용이고 CSHARP 디렉토리도 있습니다.
편집 :
지금까지 내가, 템플릿이 아닌 각 프로젝트에 대해, 각 컴퓨터에 대해 알고 있지만 템플릿을 편집 할 때, 예를 들어, 조건문을 사용할 수 :
$if$ ($targetframeworkversion$ >= 3.5)using System.Linq;
$ rootnamespace $ 상수를 사용하여 특정 프로젝트를 확인한 다음 네임 스페이스를 추가 할 수 있습니다. 어쩌면 현재 프로젝트 이름을 가진 상수가 존재할지 모르지만, $ rootnamespace $는이 목적을 위해 충분해야합니다.
아니요,이를 피할 방법이 없습니다. 그러나 네임 스페이스 선언이 리소스를 소비한다는 것을 의미하지는 않습니다 (런타임시).
Engine 네임 스페이스에서 사용하는 어셈블리의 소스 코드가 있다면 접두사 재구성과 무언가를 추가해야 할 필요성을 완전히 제거 할 수 있습니다. 이 작은 트릭을 사용하면 xaml 네임 스페이스에 all namespace를 추가 할 수 있습니다.
xmlns : Engine 라인이있는 프로젝트가 아닌 "Engine"프로젝트에서 은이 사용하는 프로젝트와 동일 할 수 없다면 작동하지 않습니다.) WindowsBase 참조가 있는지 확인하십시오 추가 한 다음 AssemblyInfo.cs/AssemblyInfo.vb 파일 (C# : Properties 폴더에 있음)에 다음을 추가하십시오 (vb : "Show All Files"단추를 사용해야 만 내 프로젝트에서 찾을 수 있습니다. 폴더) :
C 번호 :
[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "The.Class.Namespace")]
VB :
<Assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "The.Class.Namespace")>
다른 프로젝트 xaml에서 사용하려는 네임 스페이스보다 많은 클래스가있는 프로젝트를 만들면이 작업을 여러 번 수행 할 수 있습니다.
+1 멋진 아이디어, 특정 프로젝트 또는 솔루션에 가능하면 더 좋을 것입니다. – HCL