小编NGa*_*ier的帖子

AvalonDock2:仅用于文档的LayoutItemTemplate

我目前正在使用AvalonDock2构建一个简单的UI。如果我正确理解,则可以使用LayoutItemTemplate为所有文档和可打印对象设置模板。

现在这是我的问题:我想拥有“硬编码”可锚定模板。所有可锚定对象如下所示:

<avalonDock:LayoutAnchorable Title="Dialogs" 
                             CanClose="False" 
                             CanHide="False" 
                             CanFloat="False">
    <integratorUI:Explorer DataContext="{Binding Path=Editor.ModelsDialogs}"/>
</avalonDock:LayoutAnchorable>
Run Code Online (Sandbox Code Playgroud)

另一方面,我的中央文档窗格正在通过

DocumentsSource="{Binding Path=Editor.EditingModelObjects}"
Run Code Online (Sandbox Code Playgroud)

对于那些文档,设置模板很有意义,因此我可以使用ContentControl并选择适当的样式,如下所示

<Style x:Key="DocumentStyle" TargetType="ContentControl">
    <Style.Triggers>
        <DataTrigger Binding="{Binding Path=Type}" Value="{x:Static Member=integratorCore:ModelObjectType.Npc}">
            <DataTrigger.Setters>
                <Setter Property="Template" Value="{StaticResource ResourceKey=NpcViewTemplate}"/>
            </DataTrigger.Setters>
        </DataTrigger>
        <DataTrigger Binding="{Binding Path=Type}" Value="{x:Static Member=integratorCore:ModelObjectType.Room}">
            <DataTrigger.Setters>
                <Setter Property="Template" Value="{StaticResource ResourceKey=RoomViewTemplate}"/>
            </DataTrigger.Setters>
        </DataTrigger>
        <DataTrigger Binding="{Binding Path=Type}" Value="{x:Static Member=integratorCore:ModelObjectType.Dialog}">
            <DataTrigger.Setters>
                <Setter Property="Template" Value="{StaticResource ResourceKey=DialogViewTemplate}"/>
            </DataTrigger.Setters>
        </DataTrigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

现在的问题是,设置LayoutItemTemplate会覆盖我的锚点的硬编码内容...

我怎样才能同时对固定锚和模板化文档进行硬编码?就像在旧的AvalonDock版本中一样,或者我应该如何在新版本中正确处理呢?

这是完整的DockingManager:

<avalonDock:DockingManager x:Name="dockingManager"
                           Grid.Row="2"
                           DocumentsSource="{Binding Path=Editor.EditingModelObjects}"
                           DocumentClosing="DockingManagerDocumentClosing">

    <avalonDock:DockingManager.Theme>
        <avalonDock:ExpressionDarkTheme/>
    </avalonDock:DockingManager.Theme>

    <!--<avalonDock:DockingManager.LayoutItemTemplate>
        <DataTemplate>
            <ContentControl Style="{StaticResource LayoutItemStyle}" />
        </DataTemplate>
    </avalonDock:DockingManager.LayoutItemTemplate>-->

    <avalonDock:DockingManager.DocumentHeaderTemplate>
        <DataTemplate>
            <TextBlock …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml avalondock

3
推荐指数
1
解决办法
3529
查看次数

标签 统计

avalondock ×1

c# ×1

wpf ×1

xaml ×1