gpt4 book ai didi

c# - Wpf,未应用样式

转载 作者:太空狗 更新时间:2023-10-30 00:41:27 24 4
gpt4 key购买 nike

我已经编写了一个带有弹出窗口的用户控件,其内容被设置在控件之外。该控件的 ControlTemplate 如下所示:

<ControlTemplate TargetType="local:InfoIcon">
<Grid>
<ToggleButton x:Name="HelpButton" Style="{StaticResource HelpButton}" />
<Popup PlacementTarget="{Binding ElementName=HelpButton}" Placement="Bottom"
IsOpen="{Binding ElementName=HelpButton, Path=IsChecked, Mode=TwoWay}" StaysOpen="False">
<Border BorderBrush="#767676" BorderThickness="1"
Background="#f1f2f7">
<Border.Resources>

<!-- Important -->
<Style TargetType="Label">
<Setter Property="Foreground" Value="#575757" />
</Style>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="#575757" />
</Style>
<!-- /Important -->

</Border.Resources>
<ContentPresenter Content="{TemplateBinding HelpContent}" />
</Border>
</Popup>
</Grid>
</ControlTemplate>

重要部分 - 我想为项目分配自定义样式,这些项目被放入弹出窗口(它用作可点击提示)

我按以下方式使用我的控件:

<local:MyControl>
<local:MyControl.HelpContent>
<TextBlock>Ala ma kota</TextBlock>
</local:MyControl.HelpContent>
</local:MyControl>

但是尽管 Border 中有样式,TextBlock 的文本颜色总是从其父级继承值(使用 Snoop 检查)- 导致白色背景上的白色文本。

您可以下载small PoC application, which demonstrates the problem .

我的观察:

  • 样式确实适用于Label。它仅不适用于 TextBlock
  • 当我将 TextBlock.Foreground="Red" 添加到 Border 时,TextBlock 变为红色,仍然忽略样式(但现在使用来自 Border 的颜色)。
  • Snoop 通知,此 TextBlock 实际上 Style 已正确解析。但尽管如此shouldn't , 它使用继承的值而不是样式中指定的值。

我该如何解决这个问题,为什么会发生?

最佳答案

我在 Microsoft 论坛上收到了答复;我会把它留在这里,以防有人遇到同样的问题。

The difference is that a TextBlock is not a control, i.e. it doesn't have any ControlTemplate and because of this the implicit style doesn't get applied to it when it is located inside the StackPanel. Please see the following page for more information: http://blogs.msdn.com/b/wpfsdk/archive/2009/08/27/implicit-styles-templates-controls-and-frameworkelements.aspx

You could use Label elements or set the style for the TextBlock elements explicitly.

-- 马格努斯 (MM8)

关于c# - Wpf,未应用样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20537575/

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