标签: avalondock

在Avalon底座中设置面板的初始高度

我用这种方式在代码中创建面板:

DockableContent dockableContent = CreateDockableContent<TView>(model);
dockableContent.Show(_dockingManager, AnchorStyle.Bottom);
Run Code Online (Sandbox Code Playgroud)

如何指定该面板的初始高度?以下不起作用:

dockableContent.Height = 400;
Run Code Online (Sandbox Code Playgroud)

要么

ResizingPanel.SetResizeHeight(dockableContent, new GridLength(400));
Run Code Online (Sandbox Code Playgroud)

.net c# wpf avalondock

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

为高对比度主题重新设计 AvalonDock?

我在一个项目中使用 AvalonDock。为了这个例子,它的结构如下:

<ad:DockingManager>
    <ad:DockablePane>
        <ad:DockableContent Title="Test1">
        </ad:DockableContent>
        <ad:DockableContent Title="Test2">
        </ad:DockableContent>
    </ad:DockablePane>
</ad:DockingManager>
Run Code Online (Sandbox Code Playgroud)

普通标签

这很好,但不幸的是,标签在高对比度主题上看起来不太好,如下所示。

高对比度标签

理想情况下,我想重新设置选项卡的样式以使用系统颜色作为背景(例如窗口颜色)。这可能吗?

谢谢,艾伦

c# wpf styling avalondock high-contrast

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

绑定到AvalonDock 2中的LayoutAnchorableItem可见性

我试图绑定VisibilityLayoutAnchorableItem在视图模型一个布尔值,这样我可以以编程方式显示和隐藏锚定:

<UserControl.Resources>
    <avalon:BoolToVisibilityConverter x:Key="btvc"/>
</UserControl.Resources>

<avalon:DockingManager>
    <avalon:DockingManager.LayoutItemContainerStyleSelector>
        <ws:WorkspaceStyleSelector>
            <ws:WorkspaceStyleSelector.AnchorableStyle>
                <Style TargetType="{x:Type avalon:LayoutAnchorableItem}">
                    <!-- ... -->
                    <Setter Property="Visibility" Value="{Binding Model.IsVisible, Converter={StaticResource btvc}, Mode=TwoWay}"/>
                </Style>
            </ws:WorkspaceStyleSelector.AnchorableStyle>
        </ws:WorkspaceStyleSelector>
    </avalon:DockingManager.LayoutItemContainerStyleSelector>

    <!-- ... -->

</avalon:DockingManager>
Run Code Online (Sandbox Code Playgroud)

但是,每当我隐藏一个可锚定的时候,就抛出一个异常:

对象引用未设置为实例.

at Xceed.Wpf.AvalonDock.Layout.LayoutContent.Close() in ...\Xceed.Wpf.AvalonDock\Layout\LayoutContent.cs:line 346
at Xceed.Wpf.AvalonDock.Controls.LayoutItem.OnVisibilityChanged() in ...\Xceed.Wpf.AvalonDock\Controls\LayoutItem.cs:line 310
at Xceed.Wpf.AvalonDock.Controls.LayoutAnchorableItem.OnVisibilityChanged() in ...\Xceed.Wpf.AvalonDock\Controls\LayoutAnchorableItem.cs:line 299
at Xceed.Wpf.AvalonDock.Controls.LayoutItem.OnVisibilityChanged(DependencyObject s, DependencyPropertyChangedEventArgs e) in ...\Xceed.Wpf.AvalonDock\Controls\LayoutItem.cs:line 303
at Xceed.Wpf.AvalonDock.Controls.LayoutItem.<.cctor>b__1(DependencyObject s, DependencyPropertyChangedEventArgs e) in ...\Xceed.Wpf.AvalonDock\Controls\LayoutItem.cs:line 37
at System.Windows.PropertyChangedCallback.Invoke(DependencyObject d, DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
...
Run Code Online (Sandbox Code Playgroud)

在注释掉对可见性的绑定之后,可以按预期隐藏可锚定.

c# wpf avalondock

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

是否可以使用Xceed AvalonDock在主,页脚和骑行侧窗口中准备可绑定的MVVM可锚定窗格

我正在使用AvalonDock控件来完成可绑定和可停靠的窗格.

在此输入图像描述

我找到了很好的样本,让我这样做.需要做的一些事情:我使用了经理:

<xcad:DockingManager Name="DockingManager"  AnchorablesSource="{Binding FooterTools}" DocumentsSource="{Binding MainWindowTools}">
Run Code Online (Sandbox Code Playgroud)
  1. 准备PanesTemplateSelectors,PanesStyleSelectors

一切看起来都很棒,使我能够使用MVVM模式准备该解决方案.

我想知道如何扩展该解决方案以完成以下草案:

在此输入图像描述

我有两个来源,我可以用作可绑定的来源:

AnchorablesSource="{Binding FooterTools}" DocumentsSource="{Binding MainWindowTools}"
Run Code Online (Sandbox Code Playgroud)

如果有人指出我的方向或者如何在页脚中创建一个可绑定窗格而在右侧创建另一个可绑定窗格,我会很高兴.

是否可以使用AvalonDock

mvvm avalondock xceed

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

如何以编程方式向avalon Dock添加更多窗格

我正在使用avalon dock v2,我想要做的就是拥有它所以当我点击一个按钮时它会在我的布局中添加另一个窗格.

这是我现有的窗格,但是当我按下按钮时,我不知道为其添加另一个窗格的语法.

avalonDock:DockingManager x:Name="dockingManager">
                <avalonDock:LayoutRoot>
                    <avalonDock:LayoutPanel Orientation="Horizontal">
                        <avalonDock:LayoutDocumentPaneGroup >
                            <avalonDock:LayoutDocumentPane x:Name="mainDocumentPaneGroup">

                            </avalonDock:LayoutDocumentPane>
                        </avalonDock:LayoutDocumentPaneGroup>
                      </avalonDock:LayoutPanel>
                </avalonDock:LayoutRoot>
  </avalonDock:DockingManager>
Run Code Online (Sandbox Code Playgroud)

这是我放在按钮内部的内容.

 DockPanel CNPCTab = new DockPanel() { };
        CNPCTab.Name = "CNPCTab";

        mainDocumentPaneGroup.
Run Code Online (Sandbox Code Playgroud)

我真的没有看到任何允许我将我初始化的窗格添加到xaml中初始化的组I的方法.

c# avalondock

0
推荐指数
1
解决办法
2086
查看次数

标签 统计

avalondock ×5

c# ×4

wpf ×3

.net ×1

high-contrast ×1

mvvm ×1

styling ×1

xceed ×1