컨텍스트 메뉴와 WPF의 일반 메뉴간에 메뉴 정의를 공유하려면 어떻게합니까?

StackOverflow https://stackoverflow.com/questions/150150

  •  02-07-2019
  •  | 
  •  

문제

한 페이지에서 두 개의 다른 메뉴를 공유하고 싶은 정의 된 menuitem이 있습니다. 메뉴에는 두 메뉴 사이에 동일한 기능이 포함되어 있으며 두 개의 사본을 원하지 않습니다. 어쨌든 페이지에서 menuitem을 정의하고 아래의 컨텍스트에서 xaml에서 참조 할 수 있습니까?

<Page.Resources>
    <MenuItem x:Key="123"/>
</Page.Resources>

<ContextMenu>
    <MenuItem>Something hardcoded</MenuItem>

    <!-- include shared menu here -->

</ContextMenu>
도움이 되었습니까?

해결책

메뉴 항목 자체에서 x : shared = "false"를 설정하여이 작업을 수행했습니다. 리소스는 기본적으로 사용하는 각 장소간에 공유되므로 (모든 용도의 하나의 인스턴스를 의미 함),이를 끄면 매번 자원의 새 "사본"이 이루어집니다.

그래서:

<MenuItem x:Key="myMenuItem" x:Shared="False" />

여전히 "사본"을 얻을 수 있지만 한 곳에서만 정의하면됩니다. 그것이 도움이되는지 확인하십시오. 메뉴 정의에서 이렇게 사용합니다.

<StaticResource ResourceKey="myMenuItem" />

다른 팁

당신은 믹스 앤 매치를 원하기 때문에 ... "sharedmenuitems"종속 속성과 menuitems 종속 속성을 갖는 ContextMenu에서 상속되는 사용자 지정 제어를 만들 것입니다. 이런 식으로 귀하의 제어는이 두 세트를 함께 병합하는 방법을 결정할 수 있습니다. 이 예를 원하시면 알려주십시오.

여러 가지 옵션 : a) 컨텍스트 메뉴 또는 메뉴를 동일한 기본 수집 및 항목 템플릿 등을 사용하여 작업에 사용 b) 명령을 사용하고 명령 바인딩 세트에 데이터를 사용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top