我目前正在尝试找到一种方式来设置具有相同样式/类型的UWP应用中的所有控件的样式。具体而言,我想将OpticalMarginAlignment
设置为TrimSideBearings
- 我的意思是每TextBlock
。
我知道我可以在App.xaml中创建没有x:Key
属性的样式,如下所示:
<Style TargetType="TextBlock">
<Setter Property="OpticalMarginAlignment" Value="TrimSideBearings" />
</Style>
但是这并没有改变DataTemplate中的TextBlocks的风格(根据类似的问题,按设计)。但是我不想为DataTemplate中使用的每个TextBlock设置样式,所以我想到了其他解决方案:
StyledTextBlock
派生的TextBlock
元素(非工作原因TextBlock
已封存)StyledDataTemplate
派生的DataTemplate
元素(不起作用,因为我在DataTemplate中找不到任何东西,我可以挂钩加载样式,因为没有DataTemplate.Resources
)< / LI>
StyledTextBlock
元素,该元素源自UserControl
,其中包含TextBlock
元素 Number 3甚至可以正常工作,但它需要我为每个TextBlock.DependencyProperty
创建一个DependencyProperty,我想用它来设置StyledTextBlock
这样的样式:
<StyledTextBlock Text="Example" FontSize="10" />
为了保持代码量低,我可以在StyledTextBlock
中创建一个TextStyle DependencyProperty并将其设置为这样,但我也不喜欢这个解决方案:
<StyledTextBlock Text="Example">
<StyledTextBlock.TextStyle>
<Style TargetType="TextBlock">
<Setter Property="FontSize" Value="10" />
</Style>
</StyledTextBlock.Style>
</StyledTextBlock>
有没有人知道如何实现这个目标?