问题标签 [avalondock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - AvalonDock (2.0) + MVVM + VSPackage = 文件选择麻烦?
我有一个控件,它利用 AvalonDock (2.0)DockingManager
控件来显示由底层视图模型管理的一组文档:
The document view model has an IsSelected
property, and when the view model is selected, I want to select and show the document in the DockingManager
. 为此,我将Style
for更新LayoutItem
如下:
当控件托管在 WPF 应用程序中时,此方法可以正常工作,但当控件托管在 VSPackage 中时,通常在视图模型中选择文档不会将所选文档显示在视图中。在下图中,用户单击客户节点进行编辑,但客户文档没有进入视图。
视图模型层IsSelected
按预期设置,当控件使用 aTabControl
时,所选文档始终显示在顶部。
这似乎是 AvalonDock 中的一个问题。我发现的是,当LayoutItem
通过视图模型选择 a 时,列表中的第一个文档在LayoutDocument/LayoutContent/LayoutElement
层被重新选择为 true ,这会逐渐备份并IsSelected
在层重置为 true LayoutItem
。我很想IsSelected
在该层绑定到我的视图模型LayoutDocument/LayoutContent/LayoutElement
,但DependencyProperty
该层没有。
我已经尝试了绑定IsSelected
到我的视图模型的替代方法,但到目前为止没有成功。有没有其他人遇到过这个问题?知道任何解决方法或其他方法吗?我不想求助于不得不使用非 MVVM 方法,只是为了进行文档选择。
编辑:这个问题似乎很模糊,因为我很难创建一个重现的测试用例,即使使用 VSPackage。ToolWindow
在以下使用 dual s 和 Mediator 消息模拟实际控件的测试用例中,文档选择工作正常。
此测试用例(带有 WPF 应用程序和 VSPackage)可在此处获得(单击Tools=>My command name
以启动工具窗口,并在一个窗口中输入文档标题以选择或创建并在带有 的窗口中选择一个文档DockingManager
)。
c# - AvalonDock DockingManager 不加载布局
为了保存和加载我的布局,我按照这里的说明进行操作,但它对我不起作用。
我在XAML
里面有这个MainWindow
:
这些是按钮单击的事件处理程序:
显示窗口后,我点击保存“测试”文件的内容是:
问题来了 - 在我单击加载按钮后,文档和可锚定项消失了,我在窗口中看到的只有 2 个按钮和一个空矩形,我的布局应该是。此时,当我单击保存按钮时,这是写入“测试”文件的内容:
我正在使用 AvalonDock 2.0.1746.0。任何人都知道如何解决它?
wpf - WPF。模板选择器中控件之间的绑定
我的 WPF 应用程序中的数据绑定有问题。情况是:
我有两个控件,一个带有树视图,另一个带有列表中所选项目的详细视图。使用以下代码一切正常(绑定):
所选项目是详细信息控件上的依赖属性。
现在,我正在使用 Avalondock 更改布局策略(您可以从代码中的 avalonDock 标记中看到)。这意味着使用模板选择器。布局工作正常,但绑定被破坏。这是实际的一段代码,每个控件都在其模板中:
我怎样才能更新绑定以再次工作?我试过 FindAncestor 没有成功。
编辑:
终于解决了。正如 Dean Chalk 所说,按照我的策略,我的目标是不可能实现的。经过几次头痛后,我重构了我的数据模型。现在我有一个包含树视图和详细信息视图的视图模型。我遵循 AvalonDock 2.0 MVVM 示例的结构。
powerbuilder - 如何插入窗口作为可停靠窗格的内容
我有 1 个包含 2 个文档窗格和 2 个可停靠窗格的主窗口。
除此之外,我还有另外 1 个主窗口,我计划将其放置在一个可停靠窗格中。
我该怎么做?,我正在使用AvalonDock 1.3
and PowerBuilder 12.5
。
在我尝试使用此方法之前:
c# - 如何将背景图像添加到 LayoutDocumentPane?
我已经Resource
为ImageBrush
, 见下文,但我不知道如何将它添加到 AvalonDock LayoutDocumentPane
。我想将它添加到窗格中,因为我想在背景中有一个徽标,但LayoutDocumentPane
会覆盖Window
背景。
现在,我有以下内容:
wpf - avalonDock 在对接时卸载内容
似乎 AvalonDock 在任何时候通过停靠或取消停靠操作窗口时都会卸载并重新加载其文档窗口的内容。有没有可能把它关掉?
就我而言,我正在显示一个实时视频流,我需要在窗口设置为浮动或重新停靠时继续播放它。
此外,AvalonDock 2.0 的文档似乎并不完整。也许我找错地方了。我能在 codeplex 上找到的只是:AvalonDock 2.0 Getting started guide PART 1
c# - 防止文档在 DockingManager 中关闭
这是一个示例,它使用Extended WPF Toolkit 中的DockingManager
(又名AvalonDock)。
查看型号:
看法:
代码隐藏:
我想防止文档通过CanClose
我的视图模型中的属性关闭。我已经预料到,文档容器必须有一些样式,所以,我会写如下内容:
一切都会奏效。但是好像没有这种风格DockingManager
。
我错过了什么吗?
更新。
当然,我可以编写一个附加行为,它会监听DockingManager.DocumentClosing
事件并将其分派到任何视图模型,该模型将绑定到DockingManager
. 但在我看来,这很愚蠢......
另一种方法是在视图中处理事件:
但它绝对不是 MVVM 方式,我喜欢数据绑定。
c# - Avalondock 如何设置 LayoutDocument 的标签宽度
为 LayoutDocument 显示的选项卡具有短标题,例如 AA、AB、AC。因此,它们的标签尺寸相对较小。
有没有办法手动设置标签的固定宽度?
c# - 如何使用 AvalonDock 2.0 创建不自动隐藏的底部面板?
我正在使用 AvalonDock 2.0
我觉得它应该是非常基本的,但文档并没有说明什么,我已经玩了 2 个小时试图弄清楚。所以,如果这太简单了,我很抱歉。
我想要的正是标题所说的。该文档提到了如何制作底部面板,但只有一个自动隐藏的面板,这不是我想要的。
我试图在代码隐藏中切换它的自动隐藏,但高度没有受到影响,所以每次应用程序启动时,用户都必须向上拖动它才能看到面板的内容。