gpt4 book ai didi

WPF 嵌套样式

转载 作者:行者123 更新时间:2023-12-04 22:14:18 24 4
gpt4 key购买 nike

我的应用程序中有 TextBlocks 和 Comboboxes,我希望 Textblock 前景为白色,Combobox Foreground 为黑色。

我试过的是:

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<Style TargetType="{x:Type TextBlock}">
<Setter Property="Foreground" Value="White" />
</Style>
<Style TargetType="{x:Type ComboBox}">
<Setter Property="Foreground" Value="Red" />
</Style>
</ResourceDictionary>



<Grid Background="Black">
<TextBlock Height="23" HorizontalAlignment="Left" Margin="27,30,0,0" Name="textBlock1" Text="TextBlock" VerticalAlignment="Top" />
<ComboBox Height="23" HorizontalAlignment="Left" Margin="12,99,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120" />
</Grid>

但是combobox Foreground 还是白色如何覆盖combobox 中的TextBlock Foreground? (在 CSS 中这很容易,但在 WPF 中不知道)

如果我删除 TextBlock 的样式,其他一切都会改变,但是当我将样式放回时,每个前景都是白色的。

最佳答案

要嵌套样式,您可以将它们包含在父项的资源中。
您还可以更改组合框样式的 TextBlock.Foreground 属性

<Style TargetType="{x:Type ComboBox}">
<Style.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Foreground" Value="Black" />
</Style>
</Style.Resources>
<Setter Property="Foreground" Value="Black" />
<Setter Property="textBlock.Foreground" Value="Black" />
</Style>

关于WPF 嵌套样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13858288/

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