0

我很喜欢为我的应用程序的服务/数据层生成代码。我真正想做的是根据我用来生成服务/数据层的元数据生成一些基本的 WPF 控件、数据模板或其他一些 XAML 代码。编辑:这一代是在编译时间之前完成的。

我的设想是能够根据我的数据类型生成一个包含基本控件的控件,其中包含文本块、标签、日期选择器、文本框、复选框等。

我缺少的一件大事是永远不要触摸生成的 XAML 代码并完全控制它之外的布局。在网络世界中,我可以通过生成“语义”html,然后使用 CSS 选择器来选择节点并定位它们,从而在技术上做到这一点。使用 CSS/HTML,我可以完全改变布局,并且永远不会触及生成的 html。

WPF 中是否有某种方式可以从该代码外部控制控件或数据模板的布局?(选择器、视觉继承等?)

谢谢!乔恩

4

3 回答 3

2

使用Grid.SetColumn( UIElement, value )& Grid.SetRow( UIElement, value )

于 2009-04-21T04:45:07.310 回答
0

如果我理解正确,您想动态生成 XAML,然后解析并使用它?

如果是这样,您可以使用 System.Windows.Application.LoadComponent(Uri uri) 将其解析/加载到内存中。或者您可以使用 XamlReader.Load(...)。

编辑(再次阅读问题,添加一些内容):您可以使用 WPF 样式来定位和控制这些元素的布局。

于 2008-12-19T17:10:15.343 回答
0

您可以使用资源更改 WPF 对话框中的样式(甚至 ControlTemplates):如果资源(在任何级别,例如应用程序)包含 TargetType=TextBox 的样式,它将影响控件中未明确显示的所有文本框状态偏离风格。或者,您可以告诉您的 UserControl 使用某些 Style-Keys (StaticResource),然后再决定为这些 Style-Keys 插入什么 DataTemplate。只需选择 DataTemplate-ResourceFiles,其中 DataTemplates 使用正确的键并将它们合并到您的应用程序资源中。如果您以这种方式更改资源,您生成的代码将在运行时遵守这些更改。

您甚至可以在运行时更改资源,但您的问题看起来好像没有必要。

于 2010-09-16T07:49:23.553 回答