gpt4 book ai didi

wpf - 是否可以在 WPF 中设置 BulletDecorator 的样式?

转载 作者:行者123 更新时间:2023-12-04 06:00:15 25 4
gpt4 key购买 nike

显然它可以应用一个样式 - 我试图找出是否可以在样式中定义 Bullet 元素,因此您不必在 XAML 中一遍又一遍地定义它

<BulletDecorator>
<BulletDecorator.Bullet>
...my bullet UIElement here...
</BulletDecorator.Bullet>
<TextBlock>
... my text here...
</TextBlock>
</BulletDecorator>

最佳答案

BulletDecorator.Bullet 无法设置样式,并且 BulletDecorator 不是控件,因此无法对其进行模板化。

但是,您可以通过为 ContentControl 定义一个 ControlTemplate 来获得纯 XAML 的效果,如下所示:

<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>

如果您只使用它几次,“
public class MyBullet : ContentControl
{
static MyBullet()
{
DefaultStyleKey.OverrideMetadata(typeof(MyBullet), new FrameworkPropertyMetadata(typeof(MyBullet));
}
}

然后将您的 ControlTemplate 移动到 Theme/Generic.xaml (或合并到其中的字典)并用以下内容包装它:
<Style TargetType="{x:Type local:MyBullet}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate
...
</Setter.Value>
</Setter>
</Style>

如果你这样做,你可以使用:
<local:MyBullet>
<TextBox />
</local:MyBullet>

在您的应用程序中的任何地方。

关于wpf - 是否可以在 WPF 中设置 BulletDecorator 的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1684581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com