BulletDecorator.Bulletがスタイリングすることができない、とBulletDecoratorはコントロールではありません
<local:MyDecorator>
<TextBlock />
</local:MyDecorator>
だからテンプレート化することはできません。あなたはそれだけ使用する場合は
<ContentControl Template="{StaticResource BulletTemplate}">
<TextBlock />
</ContentControl>
:
<ControlTemplate x:Key="BulletTemplate" TargetType="{x:Type ContentControl}">
<BulletDecorator>
<BulletDecorator.Bullet>
...my bullet UIElement here...
</BulletDecorator.Bullet>
<ContentPresenter />
</BulletDecorator>
</ControlTemplate>
今、あなたはこのようにそれを使用することができます:あなたはこのようContentControlにのためのControlTemplateを定義することによって、純粋なXAMLで効果を得ることができますしかし
何度か、 "< ContentControl Template = ..."テクニックがうまく動作します。あなたはより頻繁にそれを使用しようとしている場合は、MyBulletクラスを定義することができます
public class MyBullet : ContentControl
{
static MyBullet()
{
DefaultStyleKey.OverrideMetadata(typeof(MyBullet), new FrameworkPropertyMetadata(typeof(MyBullet));
}
}
その後、テーマ/ Generic.xamlにあなたのControlTemplateを移動(または辞書がそれに合併)とこれとそれを包む:
あなたがこれを行う場合は
<Style TargetType="{x:Type local:MyBullet}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate
...
</Setter.Value>
</Setter>
</Style>
、あなたが使用することができますどこにでも
<local:MyBullet>
<TextBox />
</local:MyBullet>
をアプリケーションに。