首页 > 解决方案 > 如何在悬停时更改文本框标题颜色?

问题描述

我有以下内容:

<TextBox HorizontalAlignment="Stretch"  VerticalAlignment="Stretch" FontSize="12" Header="Name" >
    <TextBox.HeaderTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}" Foreground="Red" />
        </DataTemplate>
</TextBox.HeaderTemplate>

有没有办法通过 DataTemplate 或 Xaml 行为来改变前景?

标签: xamluwpwinui-3

解决方案


您可以使用XamlBehaviors.

在 Xaml 中添加 NugetMicrosoft.Xaml.Behaviors.Uwp.Managed和引用。

 xmlns:Core="using:Microsoft.Xaml.Interactions.Core"
 xmlns:Interactivity="using:Microsoft.Xaml.Interactivity"

处理PointerEnteredPointerExited事件TextBlock

<TextBox HorizontalAlignment="Stretch"  VerticalAlignment="Stretch" FontSize="12" Header="Name" >
    <TextBox.HeaderTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}" Foreground="Red">
                <Interactivity:Interaction.Behaviors>
                    <Core:EventTriggerBehavior EventName="PointerEntered">
                        <Core:ChangePropertyAction PropertyName="Foreground">
                            <Core:ChangePropertyAction.Value>
                                <SolidColorBrush Color="Blue" />
                            </Core:ChangePropertyAction.Value>
                        </Core:ChangePropertyAction>
                    </Core:EventTriggerBehavior>
                    <Core:EventTriggerBehavior EventName="PointerExited">
                        <Core:ChangePropertyAction PropertyName="Foreground">
                            <Core:ChangePropertyAction.Value>
                                <SolidColorBrush Color="Red" />
                            </Core:ChangePropertyAction.Value>
                        </Core:ChangePropertyAction>
                    </Core:EventTriggerBehavior>
                </Interactivity:Interaction.Behaviors>
            </TextBlock>
        </DataTemplate>
    </TextBox.HeaderTemplate>
</TextBox>

推荐阅读