【问题标题】:UWP TextBox Background when Focused聚焦时的 UWP 文本框背景
【发布时间】:2017-09-08 06:04:12
【问题描述】:

由于某种原因,没有简单的方法可以将 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 行)? 谢谢。

【问题讨论】:

  • 我想你可以使用behaviors。从未与他们合作过,但他们应该让这种定制变得更容易。

标签: c# xaml uwp


【解决方案1】:

在您的 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>

【讨论】:

【解决方案2】:

创建样式然后应用它会更容易。在设计时,您可以使用 Visual Studio 中的“文档大纲”窗格并右键单击文本框。然后选择编辑模板-> 编辑副本。然后以您在问题中所做的相同方式修改该样式。

【讨论】:

    猜你喜欢
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-14
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 2015-10-19
    相关资源
    最近更新 更多