わかりました... これは一種の 2 部構成です。(ちょっと。実際にはただの 1 つかもしれません。とにかく、それが私が望んでいることです。)
まず、より一般的には、XAML のみを介して、コントロールのテンプレート内の名前付き項目をターゲットにすることは可能ですか? たとえば、コントロールのテンプレートに 'PART_Foo' という名前の ContentPresenter があり、その特定の項目の HorizontalAlignment を純粋なスタイリングによって 'Stretch' に具体的に設定したい場合、それは可能ですか? 名前でコントロールを明示的に検索し、コードでプロパティを設定するサブクラスの OnApplyTemplate オーバーライドでこれを実行できることはわかっていますが、スタイリングによって厳密にこれを実行できるように、XAML のみのソリューションを望んでいます。サブクラスではなく、特定のユースケースのシナリオを除いて、とにかくほとんど推奨されていません。
また、コントロールのテンプレートを手動で指定する必要はありません。現在のテーマによってそのテンプレートが何であるか、つまりコントロールがどのように表示されるかを決定する必要があるからです。「テーマが選択したテンプレートに「foo」という名前のパーツがある場合は、純粋なスタイリングを介してこのプロパティを設定します。その名前のパーツが見つからない場合は、何もしないでください。
XAML のみのアプローチが望まれるのは、コントロール自体ではなく、生成されたコンテナー オブジェクトをターゲットにしているという 2 番目の部分のためです。特にItemsControlが仮想化されている場合、これはa$$の本当の苦痛です。
詳細については、最終的な目標は、TreeView の TreeViewItem のテンプレートで「Bd」という名前の Border を選び出し、その添付プロパティ「Grid.ColumnSpan」をデフォルトの「1」ではなく「2」に設定することです。それでおしまい!TreeViewItem のテンプレート全体を手動で置き換えたり、コード ビハインド ベースのソリューションに頼ったりしなければ、これほど単純なことはほぼ不可能に思えることに驚かされます。