作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望当窗口获得焦点时发生一些事情。但是,这似乎不起作用:
<Window x:Class="Sample.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300" Background="Black"
Opacity="0.5">
<Grid>
</Grid>
<Window.Style>
<Style>
<Style.Triggers>
<Trigger Property="Window.IsActive" Value="true">
<Setter Property="Control.Background" Value="Blue" />
<Setter Property="Window.Title" Value="Testing" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Style>
</Window>
{Enter,Exit}Action
上的动画替换 setter 事情似乎奏效了。
<Window x:Class="Sample.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300" Background="Black"
Opacity="0.5">
<Grid>
</Grid>
<Window.Style>
<Style>
<Style.Triggers>
<Trigger Property="Window.IsActive" Value="true">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="Background.Color"
To="Blue" Duration="0:0:1" />
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Title">
<DiscreteObjectKeyFrame Value="Testing" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="Background.Color"
To="Black" Duration="0:0:1" />
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Title">
<DiscreteObjectKeyFrame Value="Window1" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
</Style>
</Window.Style>
</Window>
最佳答案
如果要根据某些条件使用触发器切换某些属性值,则需要在样式本身中设置这些属性的默认值,否则无论您在 setter 中设置什么值,属性值都将始终被 本地覆盖由于 dependency property value precedence ,这些属性的值为 。在您的情况下,您需要像这样以您的风格设置 Background
和 Title
的值 -
<Window x:Class="Sample.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="300" Width="300" Opacity="0.5">
<Grid>
</Grid>
<Window.Style>
<Style>
<Setter Property="Control.Background" Value="Black"/>
<Setter Property="Window.Title" Value="Window1" />
<Style.Triggers>
<Trigger Property="Window.IsActive" Value="true">
<Setter Property="Control.Background" Value="Blue" />
<Setter Property="Window.Title" Value="Testing" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Style>
</Window>
<Window x:Class="Sample.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="300" Width="300" Opacity="0.5">
<Grid>
</Grid>
<Window.Style>
<Style>
<Style.Triggers>
<Trigger Property="Window.IsActive" Value="true">
<Setter Property="Control.Background" Value="Blue" />
<Setter Property="Window.Title" Value="Testing" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Style>
</Window>
关于wpf - 当 EnterActions 似乎起作用时,为什么样式触发器的 Setter 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9441229/
此 XAML 的目的是为列表框设置动画。 选定的 ListBoxItem 已缩放 X2 NotSelected ListBoxItem 缩放了 X.5 当没有选择任何东西时,它们是放大 X1 但是,这
最初我有一个 DataTrigger,将可见性设置为折叠: 我想要平滑的 FadeOut/FadeIn 动画,而不是设置可见性,其中 FadeOut 比 FadeIn 动画慢,所以我使用了
我希望当窗口获得焦点时发生一些事情。但是,这似乎不起作用:
我有一个 ListView,AlternationCount 设置为 2。我有一个 ListViewItem 样式,当前将 ListViewItem 的背景颜色设置为交替颜色,我想添加第三个触发器,它
我是一名优秀的程序员,十分优秀!