由于某些原因,没有简单的方法可以从默认的白色颜色更改TextBox的聚焦背景。
它的唯一工作方式(我需要它是黑暗或透明)是创建自定义文本框,粘贴大量代码(来自here),然后编辑两行:
<VisualState x:Name="Focused">
<Storyboard>
...
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundElement"
Storyboard.TargetProperty="Background">
<DiscreteObjectKeyFrame KeyTime="0" Value="#000000" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundElement" Soryboard.TargetProperty="Opacity">
<DiscreteObjectKeyFrame KeyTime="0" Value="0.1" />
</ObjectAnimationUsingKeyFrames>
我的问题是:还有更好的方法吗?是否还需要所有其他代码(~240行)? 谢谢。
答案 0 :(得分:1)
创建样式然后应用它会更容易。在设计时,您可以使用Visual Studio中的“文档大纲”窗格,然后右键单击“文本框”。然后选择编辑模板 - &gt;编辑副本。然后按照您在问题中所做的相同方式修改该样式。
答案 1 :(得分:0)
在您的App.xaml文件中执行此操作:
<Application>
<Application.Resources>
<SolidColorBrush x:Key="TextControlBackgroundFocused" Color="Black" Opacity="0.2"/>
<SolidColorBrush x:Key="TextControlForegroundFocused" Color="White"/>
<SolidColorBrush x:Key="TextControlBorderBrushFocused" Color="White" Opacity="0.2"/>
</Application.Resources>
</Application>
这将为您项目中的每个TextBox
用您自己的自定义颜色覆盖默认颜色。如果您只想将外观应用到您的某些TextBoxes
中,请为每个TextBox
在本地定义外观:
<TextBox>
<TextBox.Resources>
Put brushes here
</TextBox.Resources>
</TextBox>