2011-01-11 3 views
2

현재 PRISM 및 Microsoft WPF 리본 컨트롤을 사용하여 응용 프로그램을 작성 중입니다. 지금까지 ...은 다음과 같이 각 모듈의 IModule.Initialize 방법 중 리본 추가적인 탭 추가WPF Microsoft.Windows.Controls.Ribbon.RibbonApplicationMenu & PRISM

... 
<r:Ribbon Grid.Row="0" prism:RegionManager.RegionName="{x:Static c:ShellRegion.Ribbon}"> 
</r:Ribbon> 
... 

후 다음 쉘 XAML 부호화하여 RegionManager를 사용하여 리본으로 탭을 추가 할 수 있었다 ... 내가 지금 할 노력하고 무엇

<r:RibbonTab x:Class="Views.RibbonView" Header="TabX"> 
    <r:RibbonGroup Header="GroupX"> 
     <r:RibbonButton Label="Button1" /> 
     <r:RibbonButton Label="Button2" /> 
    </r:RibbonGroup> 
</r:RibbonTab> 

public void Initialize() { 
    this.regionManager.RegisterViewWithRegion(ShellRegion.Ribbon, typeof(Views.RibbonView)); 
} 

는 RibbonApplicationMenu 비슷한 뭔가를 구현하는 것입니다. 나는 ... 다음

<r:RibbonApplicationMenu x:Class="Views.ApplicationMenu"> 
    <r:RibbonApplicationMenuItem Header="MenuItem1" /> 
    <r:RibbonApplicationMenuItem Header="MenuItem2" /> 
</r:RibbonApplicationMenu> 

public void Initialize() { 
    this.regionManager.RegisterViewWithRegion(ShellRegion.ApplicationMenu, typeof(Views.ApplicationMenu)); 
} 

을 시도했지만이 실제로 응용 프로그램 메뉴에 포함 응용 프로그램 메뉴를 끝 (드롭 다운을 클릭 생각하고, 당신은 또한 클릭 할 또 다른 드롭 다운 사용할 수있게됩니다).

분명히 두 가지의 명백한 차이를 볼 수 있습니다. 탭의 경우 개별 리본 탭을 추가하고 메뉴 항목의 경우 실제로 다른 RibbonApplicationMenu를 추가합니다. 문제는 "물건을 병합"하는 데 사용할 수있는 "RegionAdapters"라고 생각하는 것을 만드는 데 필요한 설명서를 찾을 수 없습니다. 나는 개별 리본 탭의 작품을 추가하는 이유를 이해합니다. (장래의 모듈에서 여러 개의 리본 탭을 추가해야 할 필요가 있으며 현재 각 리본 탭을 개별적으로 코딩하지 않아도됩니다. 마찬가지로, 내가 RibbonApplicationMenu에 잘못된 자식을 추가한다는 것을 이해하고 있기 때문에 이것이 RibbonTab 's를 가지고 개별적으로 각 RibbonApplicationMenuItem을 코딩하고 그에 따라 적절하게 추가하면 작동하는 RibbonApplicationMenu가 임베드 된 결과입니다.

나는 여기에 (예, 나는 마침내 그것에 도달했다) 나는 이것에 접근하는 것이 가장 좋은 방법이라고 생각한다.

이상적인 세계에서 나는 셸에 추가 할 모든 리본 탭이 포함 된 단일 XAML 파일 (모듈 당)을 가질 수 있기를 바랍니다. 마찬가지로 RibbonApplicationMenu에 추가 할 모든 항목이 포함 된 모듈 당 하나의 XAML 파일을 원합니다. 마지막으로, 현재 내가하는 것처럼 RegionManager를 사용하여 추가 할 수 있습니다.

미리 도움을 청하십시오.

+0

기록을 위해 http://blog.joachim.at/?p=44, http://wpf.codeplex.com/wikipage?title=WPF%20Ribbon%20Preview&ProjectName=wpf, http : //stalamoni.blogspot.com/2009/02/creating-ribbontab-programatically.html, http://bartekszafko.pl/2008/11/29/en-wpf-ribbon-in-prism-applications/ 및 http : /blogsprajeesh.blogspot.com/2009/09/prism-creating-custom-region-adapter.html 여기에서 물어보기 전에 영감을 얻으십시오. –

답변

2

당신이하려는 일을 달성하는 가장 좋은 방법은, 말했듯이, 커스텀 RegionAdapter를 만드는 것입니다.

프리즘 설명서 (지역 어댑터)의 this section에 설명되어 있습니다.

얼마전 유용한 내가 찾은 Region Adapter for the Accordion Control을 만들었습니다.

이 정보가 도움이되기를 바랍니다.

+1

+1 동의합니다. 'RibbonApplicationMenu'에 대한 커스텀'RegionAdapter'가 그 길입니다. – decyclone

1

RbbonRegionAdapter here에 대한 코드를 찾을 수 있습니다. 그것은 나를 위해 일했습니다.

관련 문제