我稍微同樣的問題就像是問這裏befoere: How to place instance of window in LayoutAnchorable AvalonDock 2AvalonDock LayoutAnchorable犯規顯示控制
在這種情況下,我使用AvalonDock 2.0時許,Caliburn.Micro和Mahapps.Metro。
看來,我實際上可以將我的viewmodel映射到'LayoutAnchorable',但是當我點擊它時,它不會顯示該控件的內容(它是MetroContentControl)。我應該如何放置它......它看起來像一個看不見的ContentControl正在顯示。
XAML碼
<ad:LayoutRoot.BottomSide>
<ad:LayoutAnchorSide>
<ad:LayoutAnchorGroup>
<ad:LayoutAnchorable Title="Test" ContentId="123">
<DataTemplate>
<Controls:MetroContentControl cal:View.Model="{Binding ActiveLogViewModel}" />
</DataTemplate>
</ad:LayoutAnchorable>
</ad:LayoutAnchorGroup>
</ad:LayoutAnchorSide>
</ad:LayoutRoot.BottomSide>
是否有AD 2.0在使用和放置控制的限制?這樣做的最佳做法是什麼?
更新
<ad:DockingManager x:Name="adManagerTop" DocumentsSource="{Binding DocumentSources}" Margin="0,0,0,40">
<ad:DockingManager.Theme>
<ad:MetroTheme />
</ad:DockingManager.Theme>
<ad:DockingManager.LayoutItemContainerStyle>
<Style TargetType="{x:Type ad:LayoutItem}">
<Setter Property="Title" Value="{Binding Model.Title}"/>
<Setter Property="CanClose" Value="{Binding Model.CanClose}"/>
<Setter Property="CanFloat" Value="{Binding Model.CanFloat}" />
</Style>
</ad:DockingManager.LayoutItemContainerStyle>
<ad:DockingManager.LayoutItemTemplate>
<DataTemplate>
<Controls:MetroContentControl cal:View.Model="{Binding Content}" />
</DataTemplate>
</ad:DockingManager.LayoutItemTemplate>
<ad:LayoutRoot>
<ad:LayoutPanel>
<ad:LayoutDocumentPane />
</ad:LayoutPanel>
</ad:LayoutRoot>
</ad:DockingManager>
使用佈局配置文件的想法還沒有跨過我的想法。我將在未來嘗試使用它。問題是,如果錨沒有隱藏,可以看到控件的內容,但是如果隱藏,它不會。 – Insight
它再次,我現在知道爲什麼。 MetroWindow將'AllowTransparency'設置爲true。如果我將其設置爲false,則此問題消失,嵌入式Web瀏覽器似乎也可以工作。不過,我需要一個可能的佈局配置。 – Insight