2

我们能否以某种方式扩展 RuleSetDialog 类并在我们的 Windows 应用程序中托管?

4

3 回答 3

0

虽然确实不完全支持扩展对话框,但您可以摆脱一些自定义。在以前的项目中,我能够在运行时隐藏和重新排列一些对话框控件。

var dialog = new RuleSetDialog(activityType, null, ruleset);
dialog.Controls["headerTextLabel"].Visible = false;
dialog.Controls["pictureBoxHeader"].Visible = false;

...

var ruleGroupBox = dialog.Controls["ruleGroupBox"];
ruleGroupbox.Top -= 46;

... etc.

启动反射器并四处寻找。没有什么可以阻止您隐藏和移动控件来自定义它。您甚至可以将控件添加到组框,重新连接按钮处理程序,或者根据自己的喜好完全重新排列表单。这有点手动,但可以完成。

于 2009-03-25T15:40:57.880 回答
0

你可以通过一点点hack来完全做到这一点:将智能文本框内部控件与 System.Workflow.Activities.Rules.Design 命名空间分开......然后你几乎可以用它做任何事情。分离在这里意味着通常的:创建一个包装器(恰好是一个文本框控件的适配器),在解决一些依赖项之后实例化(最坏的情况是您可以隐藏原始规则编辑器、解析器等......)。

于 2009-05-22T15:44:31.913 回答