다음은 User control in avalon dock and separate window에 대한 후속 질문입니다. 어려운 부분이 될 것이라고 생각했던 창은 멋지게 열렸습니다. 하지만 컨텍스트 메뉴를 변경하는 데 어려움이 있습니다.avalondock override contextmenu - ContextMenuElement 유형을 찾을 수 없습니다.
저는 WPF와 avalondock에 익숙하지 않고 아마도 간단 할 것입니다. 그러나 나는 그것을 놓치고 있습니다.
이전 질문으로는 http://avalondock.codeplex.com/SourceControl/changeset/view/96370#1749982을 예로 들었습니다. "ContextMenuElement를 찾을 수 없습니다."라는 오류가 발생하여 더 간단한 것으로 나타났습니다.
http://avalondock.codeplex.com/discussions/246250 -이 내용은 프랑스어 텍스트로 바뀌지 만 적응할 수 있습니다. 내가 리소스 사전에 얻을
Cannot find the type ContextMenuElement. Note that type names are case sensitive
하고 메뉴 항목 등의 일부 명령을 가리키는 :
<MenuItem Header="Fermer"
Command="avalonDock:DocumentPaneCommands.CloseThis" />
을 나는 그대로 여전히 같은 오류가 일하러 후 붙여 넣기 사본을 시도하지 수
무엇이 누락 되었습니까?
편집 : 리소스 사전의 발췌 : 당신이 버전 1.3에 대한처럼 외모에 적응하려고 노력하고 있고 새로운 2.0 버전을 사용하고있을 수 있습니다
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:avalonDock="clr-namespace:AvalonDock;assembly=AvalonDock">
<!--Menu contextuel des onglets de l'avalonDock-->
<ContextMenu x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type avalonDock:DockingManager}, ResourceId={x:Static avalonDock:ContextMenuElement.DocumentPane}}">
<MenuItem Header="Fermer"
Command="avalonDock:DocumentPaneCommands.CloseThis" />
<MenuItem Header="Fermer tout sauf cet élément"
Command="{Binding Path=DataContext.FermerCommand, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"/>
<Separator />
좋아요. 저는 하루 전보다 훨씬 더 많은 것을 이해합니다. 프로젝트 자체에서 테마가 어떻게 구성되는지, 내부에서 바인딩 및 명령 참조가 작동하는 방식을 확인할 수 있습니다. 나는 이것을 잠시 동안 하나의 proj로 유지하고 싶다. 나중에 재사용 가능한 dll을 탐색 할 수있다. 나는 또한 간단한 교체 문맥 메뉴를 가지고있다. 그러나 그것은 기능이 없다. 명령은 없다. 광고에 의해 제공되는 메뉴 항목에 대해 복제하고 싶습니다. Command = "{Binding Path = CloseCommand}"와 같이 어떻게 다시 사용할 수 있습니까? 광고 : 속성을 참조 할 수 없습니다. 아니면이 코드를 구현해야합니까? – andrew
LayoutItemTemplate 또는 LayoutItemContainerStyle을 크게 변경하지 않으면 바인딩이 동일하게됩니다. xml 네임 스페이스 (예 : theme.xaml)를 설정하는 데 필요한 속성에 액세스하려면 Properties 네임 스페이스가 AvalonDock 어셈블리에 있어야합니다 (컨텍스트 메뉴에서 이름을 정의하기 만하면 다국어 지원이 필요하지 않으면 직접 네임 스페이스를 정의 할 수 있습니다) . – MrDosu
아하 마침내 얻었습니다. 감사. – andrew