出于某种原因,没有简单的方法可以将 TextBox 的焦点背景从默认的白色更改为白色。
它工作的唯一方法(我需要它是深色或透明的)是创建自定义文本框,粘贴无数行代码(从这里),然后编辑两行:
<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>
Run Code Online (Sandbox Code Playgroud)
我的问题是:有没有更好的方法来做到这一点?是否需要所有其他代码(约 240 行)?谢谢你。
在您的 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>
Run Code Online (Sandbox Code Playgroud)
这将为TextBox您的项目中的每个颜色使用您自己的自定义颜色覆盖默认颜色。如果您只想将外观应用于您的某些 ,请TextBoxes在本地为每个 定义它TextBox:
<TextBox>
<TextBox.Resources>
Put brushes here
</TextBox.Resources>
</TextBox>
Run Code Online (Sandbox Code Playgroud)
创建样式然后应用它会更容易。在设计时,您可以使用 Visual Studio 中的文档大纲窗格并右键单击文本框。然后选择编辑模板 -> 编辑副本。然后按照您在问题中所做的相同方式修改该样式。
| 归档时间: |
|
| 查看次数: |
1998 次 |
| 最近记录: |