BulletDecorator.Bullet не может быть стилизовано, и BulletDecorator не Control поэтому он не может быть запрограммирован.
Однако вы можете получить эффект в чистом XAML, определяя ControlTemplate для ContentControl как это:
<ControlTemplate x:Key="BulletTemplate" TargetType="{x:Type ContentControl}">
<BulletDecorator>
<BulletDecorator.Bullet>
...my bullet UIElement here...
</BulletDecorator.Bullet>
<ContentPresenter />
</BulletDecorator>
</ControlTemplate>
Теперь вы можете использовать его как это:
<ContentControl Template="{StaticResource BulletTemplate}">
<TextBlock />
</ContentControl>
Если вы только использовать его в несколько раз, технология «< ContentControl Template = ...» работает нормально. Если вы собираетесь использовать его чаще, вы можете определить класс MyBullet:
public class MyBullet : ContentControl
{
static MyBullet()
{
DefaultStyleKey.OverrideMetadata(typeof(MyBullet), new FrameworkPropertyMetadata(typeof(MyBullet));
}
}
затем переместить свой ControlTemplate в теме/Generic.xaml (или словарь сливались в него) и завернуть его с этим:
<Style TargetType="{x:Type local:MyBullet}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate
...
</Setter.Value>
</Setter>
</Style>
Если вы сделаете это, вы можете использовать:
<local:MyBullet>
<TextBox />
</local:MyBullet>
где-нибудь в вашем приложении.