我的文本框位于WPF
用户控件和样式正在应用为:
<ResourceDictionary Source="pack://application:,,,/MyStyles1;component/Themes/MyTheme.xaml"/>
样式如下:
<Style x:Key="OutputTextBoxStyle" TargetType="TextBox">
<Setter Property="FontSize" Value="15" />
<Setter Property="Background" Value="Green" />
<Setter Property="Foreground" Value="Blue" />
<Setter Property="BorderBrush" Value="Red" />
<Setter Property="BorderThickness" Value="15" />
<Setter Property="Padding" Value="2" />
</Style>
注意,所有属性(例如Foreground,BorderBrush,BorderThickness等)都按要求工作。 但未应用TextBox背景。
请协助。
答案 0 :(得分:0)
有两种方法可以将此样式设置为文本框:
明确使用:
<TextBox Style="{StaticResource OutputTextBoxStyle}" />
这是通常的方式,当项目中只有几个文本框需要这种风格适用于它们时。
隐式使用隐式样式。要使隐式样式起作用,您的定义不应包含x:Key
定义。
所以你要么添加第二个定义:
<Style TargetType="TextBox"
BasedOn="{StaticResource OutputTextBoxStyle}" />
或从现有样式中删除x:Key
定义。
如果您想要从其他地方明确引用该样式,则需要执行前者。
您还可以通过指定样式来覆盖样式的特定部分:
<TextBox Style="{StaticResource OutputTextBoxStyle}"
Background="{Aqua}" />
或
<TextBox Background="{Aqua}" />
答案 1 :(得分:0)
编辑:我现在才注意到您通过评论与Chris讨论了这个问题,他几乎问你我在下面问了什么。
与我合作:
<Window.Resources>
<Style x:Key="OutputTextBoxStyle" TargetType="TextBox">
<Setter Property="FontSize" Value="15" />
<Setter Property="Background" Value="Green" />
<Setter Property="Foreground" Value="Blue" />
<Setter Property="BorderBrush" Value="Red" />
<Setter Property="BorderThickness" Value="15" />
<Setter Property="Padding" Value="2" />
</Style>
</Window.Resources>
<Grid>
<TextBox Text="123123" HorizontalAlignment="Left" VerticalAlignment="Top" Style="{DynamicResource OutputTextBoxStyle}"/>
</Grid>
你的TextBox实际上是什么样的(XAML)?
我怀疑您已设置Background
属性,该属性覆盖了您的风格中的价值。