c# - DockPanel Suite:动态设置 FloatWindow 的 MaximizeBox 和 MinimizeBox
问题描述
我对 DockPanel Suite 非常陌生。我创建了一个自定义 FloatWindow 和 IFloatWindowFactory ,如下所示:
public class MapFloatWindowFactory : DockPanelExtender.IFloatWindowFactory
{
public FloatWindow CreateFloatWindow(DockPanel dockPanel, DockPane pane, Rectangle bounds)
{
return new MapFloatWindow(dockPanel, pane, bounds);
}
public FloatWindow CreateFloatWindow(DockPanel dockPanel, DockPane pane)
{
return new MapFloatWindow(dockPanel, pane);
}
}
public class MapFloatWindow : FloatWindow
{
public MapFloatWindow(DockPanel dockPanel, DockPane pane) : base(dockPanel, pane)
{
FormBorderStyle = FormBorderStyle.Sizable;
}
public MapFloatWindow(DockPanel dockPanel, DockPane pane, Rectangle bounds) : base(dockPanel, pane, bounds)
{
FormBorderStyle = FormBorderStyle.Sizable;
}
}
但是,通过这种方法, my 的MaximizeBox
andMinimizeBox
属性DockContent
不受尊重。我将如何实现这一点?
解决方案
根据 DockPanel Suite 文档(http://docs.dockpanelsuite.com/en/latest/tutorials/customizing-floatwindow.html),您确实需要创建一个自定义浮动窗口工厂:
接下来,创建一个工厂类来创建 CustomFloatWindow。这是通过实现 IFloatWindowFactory 接口来完成的,
public class CustomFloatWindowFactory : DockPanelExtender.IFloatWindowFactory { public FloatWindow CreateFloatWindow(DockPanel dockPanel, DockPane pane, Rectangle bounds) { return new CustomFloatWindow(dockPanel, pane, bounds); } public FloatWindow CreateFloatWindow(DockPanel dockPanel, DockPane pane) { return new CustomFloatWindow(dockPanel, pane); } }
最后,将新工厂附加到 DockPanel 控件,
this.dockPanel.Extender.FloatWindowFactory = new CustomFloatWindowFactory();
推荐阅读
- docker - 无法连接到 Docker 上托管的 MLFlow 模型
- python - Python中使用月份缩写的正则表达式
- python - 如何使用 for 循环提取 loan_price 低于 500 的贷款?
- interface - 为什么不能在接口上使用带有表达式的 C# 9
- python - 通过 Discord.py 获得角色
- https - HTTPS 代理服务
- java - 通过单选按钮从 Thymeleaf 获取输入,将包装对象中的列表返回给控制器
- javascript - 在节点中转换非统一时间戳?
- google-apps-script - Google Sheet 插件超时 ~ 45 秒?
- javascript - 使用 F12 键在戴尔笔记本电脑上调试 ASP .NET JavaScript