是否有可能在全球范围内为内部控制设置边界前景?类似于WPF的TextBlock.Foreground附加属性。我试过这个代码,它不起作用:
<Border.Resources>
<SolidColorBrush
x:Key="SystemControlForegroundAltMediumHighBrush"
Color="Black"
/>
<SolidColorBrush
x:Key="SystemControlForegroundAltHighBrush"
Color="Black"
/>
<SolidColorBrush
x:Key="SystemControlForegroundBaseMediumBrush"
Color="Black"
/>
<SolidColorBrush
x:Key="SystemControlForegroundBaseHighBrush"
Color="Black"
/>
<SolidColorBrush
x:Key="SystemControlForegroundBaseLowBrush"
Color="Black"
/>
<SolidColorBrush
x:Key="SystemControlForegroundBaseMediumHighBrush"
Color="Black"
/>
<SolidColorBrush
x:Key="SystemControlForegroundBaseMediumLowBrush"
Color="Black"
/>
</Border.Resources>我还试过DefaultTextForegroundThemeBrush和SystemColorWindowTextColor
我会稍微解释一下原因-我正在编写一个实用程序来将WPF代码转换成等价的UWP / WinUI,并且我正在寻找一种不需要重新定义样式的替代方法(因为内部控制可以显式地设置它们自己的样式)。到目前为止,我看到的唯一解决方案是在边框内的所有TextBlocks上显式设置前台属性(如果没有设置)。
发布于 2022-01-25 08:31:15
是否可以在全球范围内为内部控制设置边界前景?
我不得不说答案是否定的。没有办法在全球范围内改变只适用于边框及其子程序的系统颜色。您只能从Application.Resources中重写App.Xaml中的系统颜色。这将影响应用程序中使用此颜色的所有控件。
对于您的场景,我建议您在边框控件中更改这些子控件的Foreground属性。
如下所示:
<Border>
<Border.Resources>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="Red" />
</Style>
</Border.Resources>
<!--red text-->
<TextBlock Text="2132123314132133143123314213412343" />
</Border>
<!--black text-->
<TextBlock Text="2132123314132133143123314213412343" />https://stackoverflow.com/questions/70844451
复制相似问题