我们能否以某种方式扩展 RuleSetDialog 类并在我们的 Windows 应用程序中托管?
问问题
1573 次
3 回答
2
您不能扩展 RuleSetDialog 类(因为它是密封的),但您可以在您的应用程序中托管它:
于 2008-10-16T10:21:59.177 回答
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 回答