问题标签 [design-time]

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.

0 投票
1 回答
447 浏览

c# - 设计时教程

我正在寻找一些(最好)关于使用“丰富的设计时支持”制作控件的在线教程

通过丰富的设计时间支持,我的意思是菜单条在表单上的工作方式等。

任何指向网站、好书或代码示例(c# 或 vb.net)的链接都会很棒。

0 投票
1 回答
252 浏览

wpf - 一个简单的 ParentAdapter 实现是什么样的?

我正在尝试编写一个ParentAdapter实现;我有兴趣为我正在编写的一些 WPF 控件提供设计时支持,这就是您管理自定义逻辑以将项目重新设置为不同容器控件的方式。我从小处着手,创建一个StackPanel只允许Button在设计时作为父元素的派生类的概念(是的,我知道面板本身也需要代码来支持这一点。)我从我的想法开始可能是最简单的ParentAdapter

当我在设计时使用它时,只要我将一个按钮拖到我的自定义面板上,NullReferenceException就会从 VS 代码的深处抛出一个。我的代码没有抛出异常,因为我可以一直执行我的方法;调用堆栈表明 Microsoft.Windows.Design.Developer.dll 中的代码正在引发异常。

显然我做错了什么,但文档没有提供任何示例,我的 search-fu 似乎表明没有人在尝试这个,或者任何尝试它的人都没有谈论它。有人有建议吗?

0 投票
1 回答
2054 浏览

.net - 在自定义/用户控件 (Winforms) 中添加对嵌套容器的设计时支持

我有一个类似于向导控件的东西,中间是一个面板,我想用它来放置任何子控件。

我发现使用 ScrollableControlDesigner 将允许将删除的控件添加到自定义/用户控件中,但这不是我需要的。它需要添加到容器中,因此可以在不影响“外部”控件(标题、导航按钮)的情况下应用布局。

我尝试了各种方法,但都不起作用,而且看起来很笨拙。

有任何想法吗?

0 投票
1 回答
615 浏览

visual-studio-2008 - Visual Studio 设计时间和固定布局表 - 你的意见

我即将向 Microsoft 提交一个错误。

以下 html 在浏览器中显示良好,但在 VS 设计器中,它使整个页面可滚动 - 因为表格没有被 div 剪切:

也许您知道已经报告了类似的错误?
或者,也许您知道如何与之抗争?

0 投票
3 回答
3212 浏览

delphi - 在 Delphi 中对运行时和设计时包大惊小怪

我已经看到 Delphi 中的大多数组件 (VCL) 都分为两部分。
1) DesignTime 包
2) RunTime 包

为什么要大惊小怪。如果将 RunTime 和 DesignTime 包合并到一个包中,会有什么区别?

我从来没有真正理解过这种分离逻辑。

那么这背后的逻辑是什么?

曾经有人提到,这种区别只是为了避免采用和遵循 Microsoft 制定的组件标准。这背后真的没有逻辑。

这是真的?

0 投票
3 回答
3172 浏览

delphi - Delphi中的设计时拖放?

在 Delphi 2006(我认为)引入 TFlowPanel 和 TGridPanel 之前,我做了一个概念上相似的控件。它仍然做了一些那些控件不做的事情,当我将代码升级到 Delphi 2009 时,我决定也添加一些增强功能。

现在,子控件的顺序由它们的创建顺序决定。FlowPanel 和 GridPanel 显示了使用 ControlIndex 和其他过滤属性的更好方法,但我想知道是否有办法在设计时处理拖放重新排序?据我所知,将编辑控件拖放到我的面板上不会调用我在设计时可以访问的任何内容。

我半幻想着有一种方法可以直接检测放置操作,或者检测控件何时移动,以便我可以确定它应该去哪里。

有任何想法吗?

更新: 好的,让它工作。容器控件已经覆盖了 AlignControls 来管理控件的放置。当您拖放嵌套控件时,将再次调用 AlignControls。然后,我将控件的新坐标与列表中的其他控件进行比较,并将其移动到适当的位置。

我必须解决几个问题(主要与对 AlignControls 的许多调用有关),但基本概念很简单。感谢所有评论者的帮助。

0 投票
1 回答
1250 浏览

c# - .NET Windows 窗体问题的自定义设计器类

我已经实现了一个继承自 DocumentDesigner 的自定义设计器类。.NET Framework 中的标准 Form 类使用 FormDocumentDesigner 类(也继承自 DocumentDesigner),但由于此类是内部的,因此无法从它继承并自定义其行为,我通过使用反射器复制了此类中的逻辑并插入它在我的自定义设计器类中(以便我的表单的默认设计时行为符合标准表单)。

一切正常,除了一件事:在我的自定义设计器类的 Initialize 方法中,我想插入一个 ToolStrip 控件,以便每次在设计时打开我的表单时,该控件都是可见和可编辑的。问题是每次在设计器中关闭并重新打开窗体时都会调用 Initialize 方法,这会导致每次创建 ToolStrip 控件的新实例并将其添加到窗体的 Controls 集合中。我正在寻找一种方法来检查代码中是否已经有一个 ToolStrip 控件序列化并避免添加另一个。

到现在才发现可以使用IDesignerHost的LoadComplete事件,检查Form的Controls集合中是否有ToolStrip。但是,任何更好的想法将不胜感激。

谢谢你的时间!:-)

0 投票
1 回答
170 浏览

visual-studio - 设计时所需的输出,Visual Studio 2008 (vb)

是否可以选择在设计时运行特定代码?我想做的是显示以特定形式和菜单使用的枚举列表。这可能吗?任何回应将不胜感激。提前致谢!

0 投票
2 回答
9872 浏览

wpf - 设计从外部控件获取其 DataContext 的 WPF UserControl:如何在设计器中有一些示例数据但在运行时使用继承的 DC?

我正在设计一个 WPF 用户控件,其中包含其他用户控件(想象一个 WidgetContainer,包含不同的小部件) - 使用 MV-VM 架构。在开发过程中,我在窗口中有 WidgetContainerView,窗口(视图)生成一个 WidgetContainerViewModel 作为其资源,在 WidgetContainerViewModel 的无参数构造函数中,我用一些示例小部件(WidgetViewModels)填充其暴露的集合。

WidgetContainer控件从window继承DataContext,里面有一个ListView,将Widgets绑定到WidgetView控件(在ListView.ItemTemplate里面)。

现在这在我的 WindowView 中工作正常,因为我看到了我的示例小部件,但是一旦我编辑 WidgetContainerView 或 WidgetView,就没有内容 - 在设计时,控件是独立的,它们不继承任何 DataContext,所以我没有看不到内容,并且在设计它们时遇到了麻烦(ListView 是空的,Widget 的字段也是如此......)。

我尝试将示例小部件添加到 WidgetView:

但这不起作用——我仍然没有在设计师身上看到任何东西。

我还想在 WidgetView 中创建一个 WidgetViewModel 作为资源,如下所示:

但我不知道如何将 WidgetViewModel 分配为整个小部件的 DataContext - 我无法将 DataContext 属性添加到 UserControl,因为 WidgetViewModel 稍后在代码中定义。任何想法如何做到这一点?我可以以这种方式使用示例数据,并在代码中覆盖它,以便它在运行时具有正确的内容......

在开发用户控件时,您的最佳实践是什么?谢谢,设计空控件并不好玩:))。

0 投票
1 回答
401 浏览

visual-studio - Visual Studio 属性编辑器可以将属性引用到另一个表单(或类)中的组件吗?

作为一名迁移到 .NET 的 Delphi 开发人员,我期待 TDataModule 和 TForm 之类的类似概念可用。但是,我找不到从表单上的组件引用另一个表单(或组件)类上的另一个组件的方法。

我了解问题背后的技术差异。Delphi 组件架构基于组件流式处理(资源序列化),但.NET 形式实际上是一个代码生成器。如果不可能做这样的事情;我想知道表单 UI 设计师通常如何将通用组件放在同一个地方?它总是必须只在代码中实现吗?

对于我想要完成的事情更具体一点;我正在使用 DevExpress XtraGrid,其中多个网格实例可以引用常见的“ExternalRepository” 分隔形式的网格如何引用同一个 ExternalRepository 实例?通过代码设置此属性完全消除了网格设计时功能。

这里有什么技巧吗?