gpt4 book ai didi

uwp - 在 UWP 中鼠标悬停时如何更改按钮的背景?

转载 作者:行者123 更新时间:2023-12-04 01:45:10 25 4
gpt4 key购买 nike

现在我只想在鼠标悬停时将按钮的背景更改为 #f5f5f5 。
WPF 具有触发功能,可以轻松完成。
而我听说UWP不再有触发器,而是有其他功能,就像这个问题:
Trigger element (XAML) is not supported in a UWP project

我用 DataTriggerBehavior 作为教程做到了:

<ControlTemplate TargetType="Button" x:Key="ButtonControlTemplate">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" VerticalAlignment="{TemplateBinding VerticalAlignment}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" Name="ButtonBorder" Background="{TemplateBinding Background}">
<ContentPresenter FontSize="{TemplateBinding FontSize}" FontFamily="{TemplateBinding FontFamily}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Foreground="{TemplateBinding Foreground}"></ContentPresenter>
</Border>
<Interactivity:Interaction.Behaviors>
<Core:DataTriggerBehavior Binding="{Binding PointerMovedEvent, ElementName=ButtonBorder}" Value="true">
<Core:ChangePropertyAction TargetObject="{Binding ElementName=ButtonBorder}" PropertyName="Background" Value="#f5f5f5" />
</Core:DataTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</ControlTemplate>

该程序可以成功运行,但不能更改背景。
我的天啊。
我也尝试过 VisualState,但我找不到教程,所以我不知道如何使用它。
更重要的是,我几乎不知道为什么微软不再使用触发器。
你能帮我解决我的问题吗?
非常感谢!

最佳答案

您可以使用来自 XAML Behavior SDK 的触发器或行为。但我会为您的 Button 使用自定义样式反而。您只需在 PointerOver 中更改其颜色即可状态内部 default style .

<VisualState x:Name="PointerOver">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="RootGrid">
<DiscreteObjectKeyFrame KeyTime="0" Value="#f5f5f5"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="ContentPresenter">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ButtonBorderBrushPointerOver}"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ButtonForegroundPointerOver}"/>
</ObjectAnimationUsingKeyFrames>
<PointerUpThemeAnimation Storyboard.TargetName="RootGrid"/>
</Storyboard>
</VisualState>

或者,您可以覆盖 ButtonBackgroundPointerOver在您的 App.xaml 内.
<Application.Resources>
<SolidColorBrush x:Key="ButtonBackgroundPointerOver">#f5f5f5</SolidColorBrush>
</Application.Resources>

关于uwp - 在 UWP 中鼠标悬停时如何更改按钮的背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45562688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com