0

アプリのサービス/データ レイヤーのコード生成が大好きです。私が本当にやりたいことは、サービス/データ層を生成するために使用するメタデータに基づいて、いくつかの基本的な WPF コントロール、データ テンプレート、またはその他の XAML コードを生成することです。編集: この生成は、コンパイル時間の前に行われます。

私が想像しているのは、データの種類に基づいて、TextBlocks、Labels、Date Pickers、Textboxes、Checkboxes などの基本的なコントロールを含むコントロールを生成できることです。

私が見逃している大きなことは、生成された XAML コードに決して触れず、その外側でレイアウトを完全に制御することです。Web の世界では、「セマンティック」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 のスタイルが含まれている場合、明示的に変更されていないコントロール内のすべての TextBox に影響します。逸脱したスタイルを述べます。または、UserControl に特定のスタイル キー (StaticResource) を使用するように指示し、後でこれらのスタイル キーにプラグインする DataTemplate を決定することもできます。DataTemplates が適切なキーを使用する DataTemplate-ResourceFiles を選択し、それらを Application-Resources にマージするだけです。この方法でリソースを変更すると、生成されたコードは実行時にこれらの変更を尊重します。

実行時にリソースを変更することもできますが、質問はこれが不要であるかのように読みます。

于 2010-09-16T07:49:23.553 に答える