聚焦时的UWP TextBox背景

时间:2017-09-08 06:04:12

标签: c# xaml uwp

由于某些原因,没有简单的方法可以从默认的白色颜色更改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行)? 谢谢。

2 个答案:

答案 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>