【发布时间】:2017-06-23 11:48:11
【问题描述】:
过去三天我一直在努力解决这个问题。 我必须在鼠标悬停时更改特定的按钮背景颜色,并且应该删除按钮内容,但是如果我悬停在按钮上,我会遇到所有按钮都更改的问题。 我把我的设计放在资源字典里 下面是我的设计代码
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="MouseOver">
<Storyboard>`<ObjectAnimationUsingKeyFrames Storyboard.TargetName="BaseShape" Storyboard.TargetProperty="Background">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ButtonHoverBackgroundBrush}" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="BaseShape" Storyboard.TargetProperty="BorderBrush">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ButtonHoverBorderBrush}" />
</ObjectAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetName="ButtonHighlight" Storyboard.TargetProperty="Opacity">
<SplineDoubleKeyFrame KeyTime="0" Value="1" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState> </VisualStateGroup></VisualStateManager.VisualStateGroups>'
<Border x:Name="BaseShape" CornerRadius="10" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" />
<Rectangle x:Name="ButtonHighlight" Margin="1" RadiusX="9" RadiusY="9" Stroke="{StaticResource ButtonHoverHighlightBorderBrush}" StrokeThickness="1" Grid.ColumnSpan="2" Opacity="0" />
<ContentPresenter x:Name="contentPresenter" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" />
<Rectangle x:Name="FocusedVisualElement" Stroke="{StaticResource ButtonFocusedBorderBrush}" StrokeThickness="1" RadiusX="10" RadiusY="10" Opacity="0" />
<Rectangle x:Name="DisabledVisualElement" Fill="{StaticResource DisabledBackgroundBrush}" IsHitTestVisible="false" RadiusX="10" RadiusY="10" Opacity="0" />
<Button Content="delete" Name="xyz" Width="70"Margin="0,65,59,4" HorizontalAlignment="Right">
</Button>`
和 Xaml 带有设计的文件是 我只需要修复设计方面,而不是在后面的代码中
【问题讨论】:
-
请提供您的
XAML或Button。我认为使用Trigger会很简单。 -
由于您的按钮没有定义样式,我猜(我只能猜测,因为您没有提供足够的信息)您的样式(您对 VisualStateManager 的定义所在的位置)配置为应用于所有按钮。类似于
<Style TargetType="Button">,但应该是<Style Key="MagicButtonStyle" TargetType="Button">和<Button Style={StaticResource MagicButtonStyle"}> -
也投票只是为了使用触发器
-
好的,我给你整个代码请帮助我,我在网络上尝试了很多,也在 Blend 中尝试过......我使用了触发器和数据触发器,但现在工作了..请检查我下面的代码放入资源文件,如果代码中存在任何按钮,下面的样式将自动应用,我需要的是我在多个文件中有两个按钮,两个按钮都有内容,例如提交和关闭。资源文件中给出的默认按钮样式自动设置到按钮,但我想要的是。提交应该是橙色,关闭应该是红色,一旦我鼠标悬停橙色应该是橙色,但红色应该变成白色
-